正则表达式单词边界替代

Obi*_*ill 6 php regex word-boundary

我正在使用标准的\b单词边界.但是,它并不像我想要的那样处理点(.)字符.

所以以下正则表达式:

\b(\w+)\b

将匹配cats以及dogscats.dog,如果我有一个字符串,它说cats and dogs don't make cats.dogs.

我需要一个单词边界替代方案,只有在以下情况下才匹配整个单词:

  1. 它不包含点(.)字符
  2. 它由每侧至少一个space()字符封装

有任何想法吗?!

PS我需要这个用于PHP

Nie*_*sol 6

您可以尝试使用(?<=\s)之前和(?=\s)之后代替它\b来确保在它之前和之后有空格,但是您可能还希望允许在字符串的开头或结尾处使用(?<=\s|^)(?=\s|$)

这将自动排除带有a的"单词" .,但它也会在句子末尾排除一个单词,因为它与句点之间没有空格.