核心代码:
<script>var s1 = "acritan";var s2 = "bassarisk";var s3 = "commotive";//找出不包含 "abba" 模式的单词var r = /^(?!.*?(.)(.)21)/i;alert(r.test(s1)); // truealert(r.test(s2)); // falsealert(r.test(s3)); // false</script>
零宽断言(?!exp)反先行断言什么是反先行断言,使用 (
?!exp
) 匹配后面跟的不是exp。
php实例:
主要是想通过实例给大家说下这个正则的作用
$str="abcgwcab";$parent="/bc(?!ww)gw/";$str=preg_match($parent,$str,$match);var_dump($str);var_dump($match);/**输出:int 1array (size=1) 0 => string "bcgw" (length=4)*/
解析:首先判断字符串是否包含bc,然后判断其后面不是ww,最后匹配gw。可以看出反向断言之前后之后,能够在添加其他匹配条件。
.*?
这个.*就是匹配非空字符任意长度,?就是非贪婪模式就是匹配最少的字符例如一个字符