我希望匹配一个未被任何letter
,number
,special character
等包围的单词。我想要的示例:
Word是:Hello
我使用的正则表达式示例:/\bHello\b/i
我要使用该正则表达式的PHP代码:
$text = preg_replace('/\bHello\b/i',"some img url",$text);
结果:
hello # match *(that's ok)*
hellos # no match *(that's ok)*
hello3 # no match *(that's ok)*
1hello # no match *(that's ok)*
shello # no match *(that's ok)*
$hello# # match *(that's not ok. I don't want matching!)*
hello# # match *(that's not ok. I don't want matching!)*
我希望仅在字词未被任何其他letter
,number
或SPECIAL CHARACTER
包围时匹配。
Word边界适用于字母和数字,但WordB不适用于特殊字符,我想要像WordB这样的东西。也适用于特殊字符...
我试过这个"/(^|\s)Hello($|\s)/i"
,但那不是..
答案 0 :(得分:1)
正则表达式:
/(?<!\S)hello(?!\S)/i
PHP:
$text = preg_replace('/(?<!\S)hello(?!\S)/i', "some img url", $text);
您应检查下一个或上一个字符是否不是非空格字符。单词边界仅适用于除[0-9a-zA-Z_]
个字符(或任何语言中的任何单词字符)之外的边界
答案 1 :(得分:0)