我使用的是标准的 \b
字边界。但是,它并没有完全按照我希望的方式处理点 (.) 字符。
所以下面的正则表达式:
\b(\w+)\b
将匹配 cats.dog
中的 cats
和 dogs
如果我有一个字符串表示 cats and dogs don't make猫.狗
.
我需要一个单词边界替代方案,只有在以下情况下才能匹配整个单词:
- 不包含点(.)字符
- 每边至少由一个空格( )字符封装
有什么想法吗?!
附言我需要这个用于 PHP
最佳答案
您可以尝试使用 (?<=\s)
之前和(?=\s)
在代替 \b
之后以确保在它之前和之后有一个空格,但是您可能还想允许在字符串的开头或结尾处使用 (?<=\s|^)
的可能性和 (?=\s|$)
这将自动排除带有 .
的“单词”在它们中,但它也会排除句子末尾的单词,因为它和句号之间没有空格。
关于php - 正则表达式字边界替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074308/