服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 正则表达式 - js Abba逆向前瞻正则匹配实例

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

2020-08-25 14:58正则教程网 正则表达式

这篇文章主要介绍了js Abba逆向前瞻正则匹配实例,主要是使用正则表达式的零宽断言进行判断,需要的朋友可以参考下

核心代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<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实例:

主要是想通过实例给大家说下这个正则的作用

?
1
2
3
4
5
6
7
8
9
10
11
$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。可以看出反向断言之前后之后,能够在添加其他匹配条件。

.*?

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

延伸 · 阅读

精彩推荐