我使用正则表达式模式我preg_match php函数。模式就是说'/abc$/'
。它匹配两个字符串:
'abc'
和
'abc
'
第二个在结尾处有换行符。什么是只与第一个字符串匹配的模式?
'abc'
答案 0 :(得分:4)
/abc$/
与"abc\n"
和"abc"
匹配的原因是$
匹配字符串末尾的位置,或者(即使没有/m
修饰符)换行符之前位于字符串末尾的位置。
您需要以下正则表达式:
/abc\z/
其中\z
是字符串的明确非常结尾,或
/abc$/D
/D
修饰符使$
的行为与\z
的行为相同。见PHP.NET:
通过在编译或匹配时设置
PCRE_DOLLAR_ENDONLY
选项,可以更改dollar的含义,使其仅匹配字符串的最末端。
请参阅regex demo