核心代码:


<script>

var s1 = 'acritan';

var s2 = 'bassarisk';

var s3 = 'commotive';



//找出不包含 "abba" 模式的单词



var r = /^(?!.*?(.)(.)\2\1)/i;



alert(r.test(s1)); // true

alert(r.test(s2)); // false

alert(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 1

array (size=1)

 0 => string 'bcgw' (length=4)

*/

解析:首先判断字符串是否包含bc,然后判断其后面不是ww,最后匹配gw。可以看出反向断言之前后之后,能够在添加其他匹配条件。

.*?

这个.*就是匹配非空字符任意长度,?就是非贪婪模式就是匹配最少的字符例如一个字符

0 条评论

还没有人评论。
您需要登录后才可以回复。登录 | 立即注册