为了账号安全,请及时绑定邮箱和手机立即绑定

请问这句正则/(?:_| )+/是什么意思(解释越简单越好)?

请问这句正则/(?:_| )+/是什么意思(解释越简单越好)?

Joy_Strong 2016-09-22 21:58:12
查看完整描述

1 回答

已采纳
?
千秋此意

TA贡献158条经验 获得超187个赞

匹配的字符串中至少有一个或者多个 “_”(下划线)或者 “ ”(空格)

正则里()表示分组,分组开头有?:表示非捕获型分组,| 表示或者 + 号表示 一个或者多个

非捕获性分组就是这个分组匹配到的子字符串不会被作为匹配结果返回

var re = /(?:_| )+\w/;
var re2 = /(_| )+\w/;
var str = 'test_string';

re.test(str) // true
console.log(RegExp.$1) // (非捕获性分组,分组里匹配到的子串访问不到)

re2.test(str) // true
console.log(RegExp.$1) // '_' (捕获性分组,分组里匹配到的子串可以访问)

console.log(str.match(re)); // ['_s'] (非捕获性分组,没有把分组内容作为匹配到的子串返回)
console.log(str.match(re2)); // ['_s', '_'] (捕获性分组,把分组内容作为匹配到的子串返回)


查看完整回答
反对 回复 2016-09-23
  • Joy_Strong
    Joy_Strong
    非常感谢 非常感谢 非常感谢 解释得太好了
  • 1 回答
  • 0 关注
  • 1080 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信