通过双重出现和数字1

时间:2018-04-15 18:17:43

标签: javascript node.js regex string frontend

如果角色1出现两次或一次,我正在尝试拆分字符串。另外,我只使用1s和2s。此外,订单必须取决于以下示例:

var str =“111221”;

我想要strArr = [“1”,“11”,“2”,“2”,“1”];

str.match(/ 1 {2} | 2 | 1 {1} / g)将返回['11','1','2','2','1']。但是,这不是正确的顺序。即)5 1''11111' - > ['1','11','11']和6 1''111111' - > [ '11', '11', '11']

1 个答案:

答案 0 :(得分:0)

想出来了。

(?:1(?=(?:11)*(?!1))|11|2)

它基本上只得到第一个奇数 1,然后得到平均值。

https://regex101.com/r/UtbhsV/1

解释

 (?:
      1                   # First, try 1
      (?=                 # Must be followed by even amount of 1's
           (?: 11 )*
           (?! 1 )
      )
   |  11                  # Or, only even's left, just get 11
   |  2                   # Or, How about a  2 ?
 )