核心代码:
<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。可以看出反向断言之前后之后,能够在添加其他匹配条件。
.*?
这个.*就是匹配非空字符任意长度,?就是非贪婪模式就是匹配最少的字符例如一个字符
您可能感兴趣的文章:js实现正则匹配中文标点符号的方法javascript中使用正则计算中文长度的例子JavaScript正则表达式验证中文实例讲解js中判断数字\字母\中文的正则表达式 (实例)中文用户名的js检验正则javascript判断中文的正则JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)javascript正则表达式模糊匹配IP地址功能示例js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析js正则表达式惰性匹配和贪婪匹配用法分析JS正则子匹配实例分析js匹配网址url的正则表达式集合JS正则匹配中文的方法示例