【问题标题】:regex pattern that matches the string at the end of a string but is not followed by line break匹配字符串末尾的字符串但后面没有换行符的正则表达式模式
【发布时间】:2016-07-04 18:11:30
【问题描述】:

我使用正则表达式模式我 preg_match php 函数。该模式假设为'/abc$/'。它匹配两个字符串:

'abc'

'abc
'

第二个在其末尾有换行符。只匹配第一个字符串的模式是什么?

'abc'

【问题讨论】:

标签: php regex string line-breaks pcre


【解决方案1】:

/abc$/ 匹配"abc\n""abc" 的原因是$ 匹配字符串末尾的位置,或者(即使没有/m 修饰符)在换行符之前的位置字符串的结尾。

您需要以下正则表达式:

/abc\z/

其中\z 是字符串的明确非常 结尾,或者

/abc$/D

/D 修饰符将使$ 的行为方式与\z 相同。见PHP.NET

可以通过在编译或匹配时设置PCRE_DOLLAR_ENDONLY 选项来更改美元的含义,使其仅匹配字符串的末尾。

regex demo

【讨论】:

  • 像魅力一样工作。谢谢。
猜你喜欢
  • 2019-09-13
  • 2019-12-18
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 2011-09-23
  • 2017-09-30
相关资源
最近更新 更多