我使用正则表达式模式preg_matchPHP函数。模式是'/abc$/'
。它匹配两个字符串:
'abc'
和
'abc
'
第二个在它的末端有换行符。只匹配第一个字符串的模式是什么?
'abc'
/abc$/
同时匹配“abc\n”
和“abc”
的原因是$
匹配字符串末尾的位置,或者(即使没有/m
修饰符)匹配字符串末尾换行之前的位置。
您需要以下正则表达式:
/abc\z/
其中\z
是字符串的明确结尾,或
/abc$/D
其中/D
修饰符将使$
的行为方式与\z
相同。请参阅PHP. NET:
通过在编译或匹配时设置PCRE\u dollar\u ENDONLY
选项,可以更改dollar的含义,使其仅在字符串的最末端匹配。
查看regex演示