正则表达式之正则高级环视
先看几个案例:
$str='industry adflakfl industries industry';
//$reg='/industry|industries/i';
$reg='/industr(?:y|ies)/i';
preg_match_all($reg,$str,$res);
echo'
';
print_r($res);
echo'
';
$str='Windows3.1Windows2000Windows xp';
$reg='/Windows(?!95|98|NT|2000|xp)/i';
preg_match_all($reg,$str,$res);
echo'
';
print_r($res);
echo'
';
$str='aaaa12';
$reg='/^(?=[a-z])[a-z0-9]+$/i';
preg_match_all($reg,$str,$res);
echo'
';
print_r($res);
echo'
';
$str='aaaa12';
$reg='/(?![a-z])[a-z0-9]+$/i';
preg_match_all($reg,$str,$res);
echo'
';
print_r($res);
echo'
';
?>
提出环视的概念:
在正则规范中,我们可能会看到
(?:pattern)(?!patter)(?
(?:pattern)非捕获匹配
参考说明文档:
(?:pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用"或"字符(|)来组合一个模式的各个部分是很有用。例如,'industr(?:y|ies)就是一个比'industry|industries'更简略的表达式。
如果觉得《正则环视 php 正则高级环视》对你有帮助,请点赞、收藏,并留下你的观点哦!