標籤:gpo 運算式 att 注意 abc log Regex rip 正則表達
使用exec返回數組
var pattern=/^[a-z]+\s[0-9]{4}$/; var str=‘google 2012‘; alert(pattern.exec(str)); //返回一個包含字串的數組var pattern=/^[a-z]+/; //只匹配到字母var str=‘google 2012‘; alert(pattern.exec(str)); //只返回google的字串數組var pattern=/^([a-z]+)\s([0-9]{4})$/; //使用了分組 var str=‘google 2012‘; var a=pattern.exec(str);alert(a.length); //返回a的長度 3alert(a[0]); //返回匹配到的整個字串alert(a[1]); //返回匹配到的第一個分組的字串alert(a[2]); //返回匹配到的第二個分組的字捕獲性分組和非捕獲性分組
1 var pattern=/(\d+)([a-z])/; // 這個叫做捕獲性分組,所有的分組都捕獲返回 2 var str=‘123abc‘; 3 var a=pattern.exec(str); 4 alert(a[0]); //返回匹配到的整個字串 123a 5 alert(a[1]); //返回匹配到的第一個分組的字串 123 6 alert(a[2]); //返回匹配到的第二個分組的字串 7 8 var pattern=/(\d+)(?:[a-z])/; // 非捕獲性分組,只要在不需要捕獲返回的分組加上?: 9 var str=‘123abc‘; 10 alert(pattern.exec(str));
嵌套分組
1 var pattern=/(a?(b?(c?)))/; // 嵌套分組,從外往內擷取2 var str=‘abc‘; 3 alert(pattern.exec(str));4 //第一步:a[0],整個匹配到的字串abc5 //第二步:a[1],匹配第一個分組(a?(b?(c?))),abc6 //第三步:a[2],匹配第二個分組(b?(c?)),bc7 //第四步:a[3],匹配第三個分組(c?),
前瞻捕獲
1 var pattern=/goo(?=gle)/; // goo後面必須是gle才能返回goo,這裡一定要注意返回的是goo,而不是google2 var str=‘google‘; 3 alert(pattern.exec(str));
JavaScriptRegex模式比對(4)——使用exec返回數組、捕獲性分組和非捕獲性分組、嵌套分組