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

正则表达式里面的分组()疑惑?

正则表达式里面的分组()疑惑?

德玛西亚99 2019-03-11 13:14:45
'abcabc'.match(/(abc)(abc)/g)["abcabc"]'abcabc'.match(/(abc)(abc)/)["abcabc", "abc", "abc"]为什么这两个会有完全不同的结果?这个全局g到底在分组里面代表了什么?
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

g就是全局匹配,但你的例子很难说明问题,我来改一下

先尝试不用全局的

'abcgggabcfffabc'.match(/(abc)/)

结果是 ["abc","abc"],我来解释一下结果,

  • 数组的第一个abc,是正则第一个匹配到的结果,也就是abcgggabcfffabc,因为没有全局匹配,所以只匹配到第一个就结束了,那第二个是什么呢?

  • 因为match方法的特性,当没有使用全局匹配时,数组的后面将会追加分组的内容,也就是()内的内容,也就是你有多少个()后面就会追加多少个数据元素;

当使用全局时

'abcgggabcfffabc'.match(/(abc)/g)

结果是 ["abc", "abc", "abc"] 这个结果其实不用怎么解释 abcgggabcfffabc

大概就是这样子


查看完整回答
反对 回复 2019-03-21
  • 2 回答
  • 0 关注
  • 558 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号