正则表达式

.*?与.+?
 ?在 + 和 * 后面表示非贪婪
+ 表示重复前面的一次及以上
* 表示重复前面的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"]
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息