猿问

PHP正则表达式元字符问题

$str = 'goggle';
$pattern = '/go*gle/'; 
if(preg_match($pattern,$str)){
    echo '给定的字符串' .$str. '符合正则规则';
}else{
    echo '没有匹配到';
}
?>

正则表达式的元字符 “ * ”代表匹配0次、1次多次其前面的原子

但是代码中“ * ”的前面是“ o ”应该是“google”和“goooogle”才可以匹配成功。

为什么goggle也会匹配成功?而“gogjle”就会匹配失败?

慕粉4408023
浏览 1113回答 1
1回答

KevenHuang

废话,你后面是gjle当然匹配不到,你o*是代表o可以没有,也可以有一个以上,所以geogle,gegle,geoooogle等都是可以匹配的,因为符合你的正则表达式,而geogjle就不是你正则表达式的范围了,如果你的正则表达式是geo*gjle则可以匹配
随时随地看视频慕课网APP
我要回答