/(http[s]?:\/\/([\w]+\.){2}(com|cn))/gi
1.前瞻。
符號是?=。
?=a //a前面的字符串。
例如:
var xx="abcde"; xx= xx.split(new RegExp('(?=a)|d'));
“?=a”表示以a前面進行分割,new RegExp('(?=a)|d')表示以a前面的字符串或者d進行分割。
那麼結果是:xx[0]=abc;xx[1]=d。
2.後瞻。
符號是?!。
?!=a // a前端的字符串不是。
例如:
var regex = /(bed(!=room))/, str1="bedroom", str2 ="bedxxx"; console.log(regex.test(str1)); //false; console.log(regex.test(str2)); //true;
3.非捕獲性分組。
符號是: 括號前面加個?:
例如:windows (?:98|2000|2003) //沒有分組
4.惰性量詞。
貪婪量詞? * + {n} {n,} {n, m},惰性量詞就是貪婪量詞的後面加個‘?’。
例如:
var str = "abbbaabbbaaabbb1234"; var patt1 = /.*bbb/g; //貪婪的 得到結果 ["abbbaabbbaaabbb"] var patt2 = /.*? bbb/g; //惰性的 得到結果 //["abbb", "aabbb", "aaabbb"]
5.推薦一個在線驗證正則表達式的網站:
https://regexper.com/