php - 正则表达式字边界替代

标签 php regex word-boundary

我使用的是标准的 \b 字边界。但是,它并没有完全按照我希望的方式处理点 (.) 字符。

所以下面的正则表达式:

\b(\w+)\b

将匹配 cats.dog 中的 catsdogs 如果我有一个字符串表示 cats and dogs don't make猫.狗.

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

  1. 不包含点(.)字符
  2. 每边至少由一个空格( )字符封装

有什么想法吗?!

附言我需要这个用于 PHP

最佳答案

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

这将自动排除带有 . 的“单词”在它们中,但它也会排除句子末尾的单词,因为它和句号之间没有空格。

关于php - 正则表达式字边界替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074308/

相关文章:

sql - 正则表达式填充零

python - python 的正则表达式更改一组字符

单词边界结束和边缘之间的正则表达式差异

java - 从字符串中添加和减去数字

ruby - 如何匹配字边界 "or"[@#]?

PHP MySQL 发票 Material

php - Mysql解析错误

php - 找不到 Ratchet 的 vendor/autoload.php

php - 如何从命令行运行用 PHP 编写的 Selenium 测试