正则表达式 - 任何字符的单词边界

时间:2015-10-12 02:07:13

标签: regex preg-match

我有这段代码:

preg_match("/\b$word\b/ui",$string)

它可以正常使用字母,但变量也可以签名..比如“!@#$ ^%+”等 我怎么能这样做呢?

1 个答案:

答案 0 :(得分:3)

单词边界\b相当于:

((?<!\w)(?=\w)|(?<=\w)(?!\w))

如果你想将字符!@#$^%+视为&#34;字符字符&#34;为了指定&#34;字边界&#34;,相应地修改上面的表达式:

((?<![\w!@#$^%+])(?=[\w!@#$^%+])|(?<=[\w!@#$^%+])(?![\w!@#$^%+]))

因此给你:

preg_match("/((?<![\w!@#$^%+])(?=[\w!@#$^%+])|(?<=[\w!@#$^%+])(?![\w!@#$^%+]))$word((?<![\w!@#$^%+])(?=[\w!@#$^%+])|(?<=[\w!@#$^%+])(?![\w!@#$^%+]))/ui",$string)
相关问题