【问题标题】:PCRE whole word match (only spaces allowed as separator)PCRE 全字匹配(仅允许空格作为分隔符)
【发布时间】:2013-06-09 12:44:19
【问题描述】:

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

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

  • 35-40 => 错误
  • 3-5 => 错误
  • 335 => 错误
  • 350 => 错误
  • 35 => 是的

感谢解答

【问题讨论】:

    标签: php preg-match pcre


    【解决方案1】:

    您可以使用look-around assertions 代替字边界断言:

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

    这里(?&lt;!\S) 断言前面没有非空白字符 (\S),(?!\S) 断言$search 后面没有非空白字符。

    【讨论】:

    • 太棒了!感谢您提供惊人而快速的答复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多