我正在尝试做与这个人正在做的事情相同的事情,只是他是用 Ruby 做的,而我正在尝试通过 Javascript 来做:
Split a string into an array based on runs of contiguous characters
它基本上只是将单个字符串拆分为连续字符数组 - 例如:
给定输入字符串
'aaaabbbbczzxxxhhnnppp'
将成为一个数组
['aaaa', 'bbbb', 'c', 'zz', 'xxx', 'hh', 'nn', 'ppp']
我得到的最接近的是:
var matches = 'aaaabbbbczzxxxhhnnppp'.split(/((.)\2*)/g);
for (var i = 1; i+3 <= matches.length; i += 3) {
alert(matches[i]);
}
这实际上确实有点/有点工作......但不是真的......我显然 split 太多,否则我不必通过 +3 索引操作来消除虚假条目。
如何获得一个干净的数组,其中只包含我想要的内容?
谢谢-
最佳答案
你的正则表达式没问题,你只是使用了错误的函数。使用 String.match,而不是 String.split:
var matches = 'aaaabbbbczzxxxhhnnppp'.match(/((.)\2*)/g);
关于Javascript正则表达式将字符串拆分为分组/连续字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7495010/