这个正则怎么理解

clipboard.png

开始连续的两个b理解了,但是后面为什么还有三个单独的b?

阅读 15.9k
2 个回答

后面的3分组相当于(b)((b)),包了3个括号

> /(b)((b))/g.exec('aa bbbb')
[ 'bb', 'b', 'b', 'b', index: 3, input: 'aa bbbb' ]

第一个bb 是整个正则匹配的项bb,第二个b是第一个分组(\w) 也是b,第三个b是第二个分组((?=\1\1\1)(\1))匹配的b,(?=\1\1\1)是一个前瞻不算分组也不会匹配,所以就相当于匹配((\1)),最后一个就相当于第三个分组就是里面的(\1);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进