Javascript正则表达式将字符串拆分为分组/连续字符数组

标签 javascript regex arrays string split

我正在尝试做与这个人正在做的事情相同的事情,只是他是用 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/

相关文章:

javascript - 如何查看像素的颜色是否为红色? (使用jquery)

javascript - Ember.js IE TextField 显示空值 "null"

ios - 如何转义正则表达式字符串

java - 如何在 Java 中不简单地使用 for 循环来执行 n 个数组的按元素加法

javascript - 在所有四个方向上移动一个 div

javascript - Jqgrid无法添加或编辑数据

php - 正则表达式从字符串中获取日期

regex - 如何获取捕获组的计数然后用特定字符替换字符?

C 编程为什么在值之前打印垃圾?

javascript - 如何删除数组的多个顺序项 - JavaScript