字邊界我有這樣的代碼:正則表達式 - 任何字符
preg_match("/\b$word\b/ui",$string)
它的正常工作與字母,但變量也可以登錄..像等 怎麼能「@#$ ^%+!」我這樣做會發現這一點呢?
字邊界我有這樣的代碼:正則表達式 - 任何字符
preg_match("/\b$word\b/ui",$string)
它的正常工作與字母,但變量也可以登錄..像等 怎麼能「@#$ ^%+!」我這樣做會發現這一點呢?
字邊界\b
等同於:
((?<!\w)(?=\w)|(?<=\w)(?!\w))
如果你要正確對待字符[email protected]#$^%+
爲「字字符」指定一個「單詞邊界」,修改相應的上述表達的目的:
((?<![\[email protected]#$^%+])(?=[\[email protected]#$^%+])|(?<=[\[email protected]#$^%+])(?![\[email protected]#$^%+]))
從而給你:
preg_match("/((?<![\[email protected]#$^%+])(?=[\[email protected]#$^%+])|(?<=[\[email protected]#$^%+])(?![\[email protected]#$^%+]))$word((?<![\[email protected]#$^%+])(?=[\[email protected]#$^%+])|(?<=[\[email protected]#$^%+])(?![\[email protected]#$^%+]))/ui",$string)
你要正確對待茶爲了確定「文字邊界」的目的,像'「!@#$ ^%+」'這樣的字符串作爲「單詞字符」? – Bohemian