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

Ino*_*ryy 6 php pcre

我正在尝试在php(preg_match_all)中运行一个匹配字符串中某些整个单词的正则表达式,但问题是它还匹配仅包含部分测试单词的单词.这也是一个更大的正则表达式中的子查询,所以其他PHP函数strpos不会帮助我,遗憾的是.

字符串:"I test a string"

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

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

预期结果:"string"仅限!

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

And*_*rew 10

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

/\b(testable|string)\b/
Run Code Online (Sandbox Code Playgroud)

这将只匹配一个单词边界,后跟一个testablestring另一个单词边界.