Php 捕获一个不带';不要以某个词开头
我正在尝试使用preg_match捕捉某个字符串。我试图捕获所有不以单词(what)开头并以(is my name)结尾的字符串,但是,由于某种原因,我的正则表达式没有捕获名称。我做错了什么Php 捕获一个不带';不要以某个词开头,php,regex,preg-match,Php,Regex,Preg Match,我正在尝试使用preg_match捕捉某个字符串。我试图捕获所有不以单词(what)开头并以(is my name)结尾的字符串,但是,由于某种原因,我的正则表达式没有捕获名称。我做错了什么 $string = "alex is my name"; if (preg_match("~(?<!what) is my name~", $string, $match)) { print_r($match); } //end of if (preg_match("~(?<!what) is
$string = "alex is my name";
if (preg_match("~(?<!what) is my name~", $string, $match)) {
print_r($match);
} //end of if (preg_match("~(?<!what) is my name~", $string, $match))
$string=“alex是我的名字”;
如果(preg_)匹配(“~(?使用负向前看而不是负向后看.)
preg_match("~^(?!what\b)(\w+) is my name\b~", $string, $match)
或
如有必要,将最后一个\b
替换为线锚末端$
你就不能爆炸吗?爆炸('is my name',$string);“is my name”将始终是相同的对吗?如果字符串是(what is my name),它将捕获(帽子)作为名称(what is my name)。我宁愿不要(^),因为如果用户提交类似的东西(那么我的名字是什么)或类似的东西会怎么样。我的意思是没有(^),没有。很抱歉,这是打字错误,如果您已经阅读了上面的内容,并且没有任何意义,请重新阅读。我不明白的是,它如何能够在没有(^)的情况下捕获(hat)作为名称。这是怎么发生的?(?!What\b)
检查匹配项之前不会有What
而没有^
,(?!what\b)(\w+
应与what
中的hat
匹配,因为字符串hat
前面没有what
preg_match("~\b(?!what\b)(\w+) is my name\b~", $string, $match)