PCRE匹配整个单词串
问题描述:
我试图运行在PHP(preg_match_all
)一个正则表达式在一个字符串匹配某种完整的单词,但问题是,它也符合仅包含一个测试单词的一部分的话。 同样这是一个较大的正则表达式的子查询,所以像strpos
其他PHP函数不会帮我,可悲。PCRE匹配整个单词串
字符串:"I test a string"
词匹配:"testable", "string"
尝试正则表达式:/([testable|string]+)/
预期结果:"string"
而已!
结果:"test", "a", "string"
答
如果你真的想确保你只让你的话,不包含这些的话,那么你可以使用单词边界锚:
/\b(testable|string)\b/
这将只匹配字边界,接着为无论testable
或string
然后另一个字边界。
答
你不想要的字符类[]
,你只是想匹配的话:
/testable|string/
你的正则表达式是完全等同于'/([abegilnrst |] +)/' – NullUserException
感谢,我现在解决了......但你为什么要删除吗?答案:d – Inoryy