如果角色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']
答案 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 ?
)