正则表达式:区分'name'和'name_local'

时间:2017-06-01 12:10:10

标签: php regex

如何严格选择正则表达式

'name':如果搜索“姓名”,

'name_local':如果搜索'name_local',

但是如果搜索'name',则不要同时选择两者?

试过 '/('.$key.')(?!_)/',但如果'name''name_local',它仍会同时选择$keyname

2 个答案:

答案 0 :(得分:3)

你需要单词边界锚\b

'/(\b'.$key.'\b)/'

答案 1 :(得分:0)

如果例如下一个字符不是单词字符,则字边界不保证匹配右输入字符串。 name-local。使用lookarounds:

(?<!\S)name(?!\S)

PHP:

$re = "/(?<!\S)$key(?!\S)/";