我有一个字符串,我正在尝试找到它的重复字符,我不想将它们包含在结果数组中。
这是我的字符串(也可以是数字):
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"]
答案 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)