[英]Regular Expression - is .*$ the same as .*
我正在清理另一个人的正则表达,他们现在结束了他们的所有
.*$
所以下面的内容不一样吗?
.*
.*
将尽可能多地匹配,但默认情况下.
与换行符不匹配。 如果您匹配的文本有换行符而您处于MULTILINE而不是 DOTALL模式,那么.*$
可能与.*
不匹配。 没有换行符(或者如果你不在MULTILINE中)或者如果你设置了DOTALL,它们是相同的,因为*
是一个贪婪的运算符,并且会尽可能多地匹配。
最后,确切的答案取决于正则表达式引擎。 所以你的结果可能不同。
并非总是如此,它取决于正在使用的设置,大多数正则表达式引擎都具有“多线”模式,如果启用它们,它们的行为将有所不同。
$
断言匹配到达字符串的末尾,这将始终发生.
匹配任何东西 所以,是的,他们是一样的。
然而,正如Paul Creasey指出的那样,有时它们不一样。 启用多行时, $
将匹配多行字符串的结尾。 但是,除非dot-all(意为“dot”匹配all)也启用,否则.
无法匹配换行符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.