568数据 568数据


js Abba逆向前瞻正则匹配实例

网络编程 js Abba逆向前瞻正则匹配实例 06-21

核心代码:

<script>
var s1 = 'acritan';
var s2 = 'bassarisk';
var s3 = 'commotive';

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

var r = /^(?!.*?(.)(.)21)/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之正确理解正则表达式回溯
当一个正则表达式扫描目标字符串时,从左到右逐个扫描正则表达式的组成部分,在每个位置上测试能不能找到一个匹配。对于每一个量词和分支,都

正则表达式{n,m}量词(至少n次,最多m次)
正则表达式{n,m}量词:{n,m}量词可以重复前面匹配的字符n-m次,至少n次,最多m次。语法结构:构造函数方式:newRegExp("x{n,m}")对象直接量方式:/x{n,m}/浏览器支

正则表达式全局匹配模式(g修饰符)
正则表达式g修饰符:g修饰符用语规定正则表达式执行全局匹配,也就是在找到第一个匹配之后仍然会继续查找。语法结构:构造函数方式:newRegExp("regexp","g


编辑:568数据

标签:量词,正则表达式,断言,字符,最多