我想将其分为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", ""]
答案 0 :(得分:2)
您对*
和0
使用了1
量词。 *
表示“匹配前一个标记零或更多次”。正则表达式匹配一个空字符串,这反映在最终输出中。要解决此问题,您可以使用+
,这意味着“匹配前一个标记一个多次”。
/(0+|1+)/
答案 1 :(得分:1)
使用+
代替*
:
var matches = string.match(/0+|1+/gi);
问题是0*
与字符串中的1
匹配。