正则表达式组通过找到两个重复组之一

时间:2014-08-22 13:50:33

标签: javascript regex match

我想将其分为1组和0组

    var string = '10011110000100101';

    var matches = string.match(/0*|1*/gi);

    console.log(matches);

我目前正在

 ["", "00", "", "", "", "", "0000", "", "00", "", "0", "", ""]

预期产出:

 ["1", "00", "1111", "0000", "1", "00", "1", "0", "1"]

1s未被分组,并且显示为空白。

如果我切换1和0,则会发生相反的情况:

["1", "", "", "1111", "", "", "", "", "1", "", "", "1", "", "1", ""]

2 个答案:

答案 0 :(得分:2)

您对*0使用了1量词。 *表示“匹配前一个标记或更多次”。正则表达式匹配一个空字符串,这反映在最终输出中。要解决此问题,您可以使用+,这意味着“匹配前一个标记一个多次”。

/(0+|1+)/

RegEx Demo

答案 1 :(得分:1)

使用+代替*

   var matches = string.match(/0+|1+/gi);

问题是0*与字符串中的1匹配。