使用regex lookahead获取某人的名字

时间:2016-04-09 22:33:19

标签: 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”,所以它应该匹配字符串,但它没有。我做错了什么?

结果:

Array()

预期结果:

数组(我的名字是詹姆斯)

1 个答案:

答案 0 :(得分:3)

negative lookahead不使用>does it? (看后面确实使用<):

/(?!\bnot\b)[a-z]+/