js Abba逆向前瞻正則匹配實例
更新時間:2016年12月23日 17:26:06 投稿:mdxy-dxy
這篇文章主要介紹了js Abba逆向前瞻正則匹配實例,主要是使用正則表達式的零寬斷言進行判斷,需要的朋友可以參考下
核心代碼:
<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??梢钥闯龇聪驍嘌灾昂笾?,能夠在添加其他匹配條件。
.*?
這個.*就是匹配非空字符任意長度,?就是非貪婪模式就是匹配最少的字符例如一個字符