PCRE全字匹配(仅允许使用空格作为分隔符)

2022-08-08 00:00:00 pcre php preg-match

我要将字符串作为一个完整的单词匹配"~$search~i",它匹配‘35’到‘35-40’。我只想让空格作为单词之间的分隔符。

测试用例: 在以下情况下匹配35:

  • 35-40=>FALSE
  • 3-5=>FALSE
  • 335=>FALSE
  • 350=>FALSE
  • 35=>TRUE

感谢您的答复


解决方案

您可以使用look-around assertions而不是词边界断言:

~(?<!S)$search(?!S)~i

此处(?<!S)断言前面没有非空白字符(S),(?!S)断言$search后面没有非空格字符。

相关文章