如何严格选择正则表达式
'name'
:如果搜索“姓名”,
'name_local'
:如果搜索'name_local',
但是如果搜索'name',则不要同时选择两者?
试过
'/('.$key.')(?!_)/'
,但如果'name'
为'name_local'
,它仍会同时选择$key
和name
。
答案 0 :(得分:3)
你需要单词边界锚\b
:
'/(\b'.$key.'\b)/'
答案 1 :(得分:0)
如果例如下一个字符不是单词字符,则字边界不保证匹配右输入字符串。 name-local
。使用lookarounds:
(?<!\S)name(?!\S)
PHP:
$re = "/(?<!\S)$key(?!\S)/";