正则表达式 - 从字符串中捕获重复的字符

时间:2018-02-21 21:06:46

标签: javascript regex

我有一个字符串,我正在尝试找到它的重复字符,我不想将它们包含在结果数组中。

这是我的字符串(也可以是数字):

var str = "AAAABBBCCDAABBB";

这是我的目标:

['A', 'B', 'C', 'D', 'A', 'B']

以及我到目前为止所拥有的内容:

var str = "AAAABBBCCDAABBB";
var regex = /(.)\1/g;
str.match(regex); 
//["AA", "AA", "BB", "CC", "AA", "BB"]

2 个答案:

答案 0 :(得分:5)

你可以像这样尝试使用负向前瞻(?!,断言后面的内容不是第1组\1

var str = "AAAABBBCCDAABBB";
var regex = /(.)(?!\1)/g;
console.log(str.match(regex));

答案 1 :(得分:1)

您可以使用exec并循环匹配将每个捕获添加到数组。

var s = "AAAABBBCCDAABBB",
    r = /(.)\1*/g,
    a = []
while((m = r.exec(s)) !== null) {
  a.push(m[1])
}
console.log(a)