繼續(xù)前一篇的正則表達(dá)之復(fù)雜模式
4.非捕獲性分組
上次說道反向引用分組,我們稱其為捕獲性分組.還有一種是非捕獲性分組,就是不存儲(chǔ)分組結(jié)果,這樣運(yùn)算起來很快.非捕獲性分組在左(前面一個(gè))括號(hào)的后面加上?:即可.
舉例說明
第一個(gè)是捕獲性分組
var foraspcn_str = #abcd;
var re = /#(\w{2})/g;
re.test(foraspcn_str);
alert(regexp.$1);返回ab
比較非捕獲性分組
var foraspcn_str = #abcd;
var re = /#(?:\w{2})/g;
re.test(foraspcn_str);
alert(regexp.$1);則返回空.
5前瞻,分為正向前瞻和負(fù)向前瞻
前瞻,當(dāng)某個(gè)特定的字符分組出現(xiàn)在另一個(gè)字符串之前,才去捕獲它.
正向其中南站模式是放在(?=和)之間,正像前瞻檢查的是接下來出現(xiàn)的是不是某個(gè)特定的字符集.
舉例:
var str1 = badroom;
var str2 = badding;
var re = /(bad(?=room))/g;
alert(re.test(str1));//輸出ture
alert(regexp.$1);//輸出bad
alert(re.test(str2));//輸出false
負(fù)向前瞻是檢查不應(yīng)該出現(xiàn)的特定字符串,是將模式放在(?!和)之間.
var str1 = badroom;
var str2 = badding;
var re = /(bad(?=room))/g;
alert(re.test(str1));//輸出false
alert(re.test(str2));//輸出ture
alert(regexp.$1);//輸出bad
6邊界用于正則表達(dá)式中標(biāo)識(shí)模式的位置
邊界表
邊界 描述
^ 行開頭
$ 行結(jié)尾
\b 單詞的邊界
\b 非單詞的邊界
舉例:
var str = this site is http://m.bwnwqq.cn.;
var re1 = /(\w+)\.$/;
var re2 = /^(\w+)/;
var re3 = /^(.+?)\b/;
var re4 = /\b(\s+?)\b/;
re1.test(str);
alert(regexp.$1);//輸出cn
re2.test(str);
alert(regexp.$1);//輸出this
var array1 = re3.match(str);
var array2 = re4.match(str);
7.多行模式,急當(dāng)字符串中有換行符\n,只要在表達(dá)式后面加上一個(gè)m選項(xiàng).
第六個(gè)和第七個(gè)不是很了解......