正則表達式

.*?與.+?
 ?在 + 和 * 後面表示非貪婪
+ 表示重複前面的一次及以上
* 表示重複前面的0次及以上正則表達式

(?:pattern) :匹配pattern但不獲取匹配的字符串,也就是說這是一個非獲取匹配,不存儲匹配的子字符串用於向後引用 ,這種形式的匹配須要本身進一步研究spa

例如正則: nh\t生於(?:\tnt)+
nh    生於    nt    nt    nt    wp    ns    n    wp    nt
nh    生於    nt   wp    ns    n    wp    ntcode

以上紅色部分表示匹配部分字符串

 

三、比較(X)和(?:X)string

    比較(X)和(?:X), 前者是捕獲分組,後者不捕獲,區別在於正則表達式匹配輸入字符串以後所得到的匹配的(數)組當中沒有(?:X)匹配的部分;
好比引用

var m = "abcabc".match(/(?:a)(b)(c)/)
//結果 ["abc", "b", "c"]
// m[0] 是/(?:a)(b)(c)/匹配到的整個字符串,這裏包括了a
// m[1] 是捕獲組1,即(b)匹配的子字符串substring or sub sequence
// m[2] 是捕獲組2,即(c)匹配到的

若是這樣co

var m = "abcabc".match(/(a)(b)(c)/)
//結果 ["abc", "a", "b", "c"]
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息