/(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/