[\s\S]* 之间有什么区别?和 .*?在 Java 正则表达式中?
我开发了一个正则表达式来标识文本文件中的xml块。表达式看起来像这样(我已经删除了所有java转义斜杠,使其易于阅读):
<\?xml\s+version="[\d\.]+"\s*\?>\s*<\s*rdf:RDF[^>]*>[\s\S]*?<\s*\/\s*rdf:RDF\s*>
然后我优化了它,并替换为它突然停止识别xml。[\s\S]*?
.*?
据我所知,意味着所有的空白符号和所有非空白符号在逻辑上应该等同于我没有使用贪婪的过滤器,那么可能有什么区别呢?\s
\S
[^\s]
[\s\S]
.