繁体   English   中英

正则表达式 - 。* $与。*相同。*

[英]Regular Expression - is .*$ the same as .*

我正在清理另一个人的正则表达,他们现在结束了他们的所有

.*$

所以下面的内容不一样吗?

.*

.*将尽可能多地匹配,但默认情况下. 与换行符不匹配。 如果您匹配的文本有换行符而您处于MULTILINE而不是 DOTALL模式,那么.*$可能与.*不匹配。 没有换行符(或者如果你不在MULTILINE中)或者如果你设置了DOTALL,它们是相同的,因为*是一个贪婪的运算符,并且会尽可能多地匹配。

最后,确切的答案取决于正则表达式引擎。 所以你的结果可能不同。

并非总是如此,它取决于正在使用的设置,大多数正则表达式引擎都具有“多线”模式,如果启用它们,它们的行为将有所不同。

$断言匹配到达字符串的末尾,这将始终发生. 匹配任何东西 所以,是的,他们是一样的。

然而,正如Paul Creasey指出的那样,有时它们不一样。 启用多行时, $将匹配多行字符串的结尾。 但是,除非dot-all(意为“dot”匹配all)也启用,否则. 无法匹配换行符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM