PCRE匹配字符串中的整个单词

时间:2011-10-05 14:09:32

标签: php pcre

我正在尝试在php(preg_match_all)中运行一个匹配字符串中某些完整单词的正则表达式,但问题是它还匹配仅包含部分测试单词的单词。 这也是一个更大的正则表达式中的子查询,所以其他PHP函数如strpos对我来说无济于事。

字符串"I test a string"

要匹配的字词"testable", "string"

尝试正则表达式/([testable|string]+)/

预期结果:仅限"string"

结果"test", "a", "string"

2 个答案:

答案 0 :(得分:9)

如果你真的想确保你只收到你的单词而不是包含它们的单词,那么你可以使用单词边界锚点:

/\b(testable|string)\b/

这只匹配单词边界,后跟testablestring,然后是另一个单词边界。

答案 1 :(得分:2)

你不想要一个[]的角色类,你只想匹配单词:

/testable|string/