【发布时间】:2011-05-19 14:07:04
【问题描述】:
我需要写一个正则表达式来匹配这个词。可以使用/\bword\b/ 模式来查找确切的单词。
但我希望模式找到word、words、wording 等等。
例如,我想编写一个模式来在段落字符串中查找术语 account、accounting、accounts 和 accountant。
【问题讨论】:
标签: php regex preg-match-all string-matching
我需要写一个正则表达式来匹配这个词。可以使用/\bword\b/ 模式来查找确切的单词。
但我希望模式找到word、words、wording 等等。
例如,我想编写一个模式来在段落字符串中查找术语 account、accounting、accounts 和 accountant。
【问题讨论】:
标签: php regex preg-match-all string-matching
我认为这会让你到达那里:
/\<word(|s|ing)\>/
【讨论】:
\b(accounting|accounts|account)\b
【讨论】:
我可能错了,但我不认为 "/\b*word*\b/" 得到单词,而是它实际上匹配 '''''wor' 或 ||worddddd| 之类的东西,如果你想要单词及其变体,请尝试:
/\bword[^\b]+\b/i
【讨论】:
[^\b] 不起作用 - \b 不会被解释为字符类中的单词边界。 \b 的否定是 \B,但即使这样在这里也行不通 - 重复一个零长度的断言没有任何意义,当然它永远不可能匹配一个 \b 对在\B之后。
要匹配您的关键字(可选地后跟s、ing、ant),您可以使用:
/\b($word(?:|s|ing|ant))\b/i
如果您想允许任何可选字母作为后缀,您可以使用:
/\b($word\w*)\b/i
【讨论】: