Php 找人';使用regex lookahead的s名称

Php 找人';使用regex lookahead的s名称,php,regex,preg-match,Php,Regex,Preg Match,我正在尝试使用preg_match来获取某人的姓名,但如果他们说“我的名字不是某某…”之类的话,我不希望它获取他们的姓名,但我在匹配它时遇到困难: $string = "my name is james"; preg_match("~my name is (?>!\bnot\b)[a-z]+~", $string, $match); print_r($match); 因为我的原始字符串中没有单词“not”,所以它应该与字符串匹配,但它没有匹配。我做错了什么 结果: 数组() 预期结果:

我正在尝试使用preg_match来获取某人的姓名,但如果他们说“我的名字不是某某…”之类的话,我不希望它获取他们的姓名,但我在匹配它时遇到困难:

$string = "my name is james";
preg_match("~my name is (?>!\bnot\b)[a-z]+~", $string, $match);
print_r($match);
因为我的原始字符串中没有单词“not”,所以它应该与字符串匹配,但它没有匹配。我做错了什么

结果:

数组()

预期结果:

数组(我叫詹姆斯)

不使用
?(look-behind使用
不使用
,?(look-behind使用
正确。
(?>!\bnot\b)
是一个与序列匹配的变量
!not
。正确。
(?>!\bnot\b)
是一个与序列匹配的变量
!not
/(?!\bnot\b)[a-z]+/