正則表達之復雜模式2

字號:


    繼續(xù)前一篇的正則表達之復雜模式
    4.非捕獲性分組
    上次說道反向引用分組,我們稱其為捕獲性分組.還有一種是非捕獲性分組,就是不存儲分組結(jié)果,這樣運算起來很快.非捕獲性分組在左(前面一個)括號的后面加上?:即可.
    舉例說明
    第一個是捕獲性分組
    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前瞻,分為正向前瞻和負向前瞻
    前瞻,當某個特定的字符分組出現(xiàn)在另一個字符串之前,才去捕獲它.
    正向其中南站模式是放在(?=和)之間,正像前瞻檢查的是接下來出現(xiàn)的是不是某個特定的字符集.
    舉例:
    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
    負向前瞻是檢查不應(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邊界用于正則表達式中標識模式的位置
    邊界表
    邊界 描述
    ^    行開頭
    $    行結(jié)尾
    \b   單詞的邊界
    \B   非單詞的邊界
    舉例:
    var str = "this site is http://www.ynpxrz.com.";
    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.多行模式,急當字符串中有換行符\n,只要在表達式后面加上一個m選項.
    第六個和第七個不是很了解......