正则表达式匹配一个单词,由单词边界包围,不包括正斜杠

时间:2014-07-27 21:10:01

标签: php regex

是否有可能使PHP正则表达式字边界不匹配某些字符作为字边界?

例如,当我在下面运行/\btwo words\b/ RegExp时,我不想要任何匹配:

google.com/two words
stackoverflow.com/login?two words
yahoo.com/topics/99421231#$two words

但是我执行希望匹配以下内容:

two words
one two words three
# two words
(two words)
.two words
!two words

PHP代码:preg_match("/\btwo words\b/", $text, $result);

1 个答案:

答案 0 :(得分:4)

您可以使用Negative Lookbehind,列出要在字符类中排除的内容。

preg_match('~(?<![/?$])\btwo words\b~i', $text, $result); 

Live Demo