js正则表达式

var rgb = /b(()|()|()|()|()|(S(?=[A-Z06789])S)|([A-Za-z]+)|([a-z]d{2,}[a-z]))b/g

var str = "zhe41 shou3444 ge zhe0 zhre4 zher41 shi0 aa1 shi4 tan2 xvan4 yan3 chang4 de5 / B1 IY1 . K0 ER0 N0 / deng1 ta3 zhe4 zhe4- "

str.match(rgb);

为什么前端加上了一堆的()|()|()|()后面的正则就无法匹配到指定的值了,去掉就可以了,有人知道为什么吗?

阅读 1.5k
1 个回答

我试的哈 不知道对不对

空括号匹配到的是abc中间的东西 其实就是没有东西 是一个""
匹配abc就有4个匹配ab的话就是3个
然后正则的|是或 但是()已经匹配到了 所以就不会走后面了

var rgb = /()/g;
var str = "abc";
str.match(rgb);//["","","",""]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题