获取字符串中的重复字符

伊卡特

我尝试匹配/获取字符串中的所有重复项。到目前为止,这是我所做的:

var str = 'abcabc123123';
var REPEATED_CHARS_REGEX = /(.).*\1/gi;

console.log( str.match(REPEATED_CHARS_REGEX) ); // => ['abca', '1231']

如您所见,匹配结果是['abca', '1231'],但我期望得到['abc', '123']有什么想法可以做到吗?

第二个问题:

我期望的另一件事是,它可以更改持续时间,以便在字符串中匹配字符的频率得以提高...

例如,如果字符串为,abcabcabc并且将repetation-time设置为2,则结果应为['abcabc']如果设置为3它应该是['abc']

更新

一个非RegExp解决方案是完全可以的!

乔纳森·洛诺夫斯基(Jonathan Lonowski)

好吧,我认为falsetru有一个很好的主意,其零宽度预见功能。

'abcabc123123'.match(/(.+)(?=\1)/g)
// ["abc", "123"]

这样可以确保仅匹配初始子字符串,同时确保至少重复1次。

对于M42的后续示例,可以使用对其进行修改,.*?以允许重复之间存在间隙。

'abc123ab12'.match(/(.+)(?=.*?\1)/g)
// ["ab", "12"]

然后,要查找重复一起开始多次使用的位置,{n}可以为捕获组添加一个量词():

'abcabc1234abc'.match(/(.+){2}(?=.*?\1)/g)
// ["abcabc"]

或者,要仅使首字母与随后的许多重复匹配,请在前瞻中添加量词。

'abc123ab12ab'.match(/(.+)(?=(.*?\1){2})/g)
// ["ab"]

它还可以使用范围量词匹配最小重复次数,而没有最大数量- {2,}

'abcd1234ab12cd34bcd234'.match(/(.+)(?=(.*?\1){2,})/g)
// ["b", "cd", "2", "34"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取字符串中重复的字符数

来自分类Dev

PHP:如何获取字符串中的重复字符

来自分类Dev

PHP:如何获取字符串中的重复字符

来自分类Dev

获取字符串中的多个重复序列

来自分类Dev

从字符串中获取字符串对

来自分类Dev

在字符串中获取字符串

来自分类Dev

从给定的字符串中获取字符串

来自分类Dev

在ListView中获取字符串

来自分类Dev

从文件中获取字符串

来自分类Dev

在 Python 中获取字符串中字符的索引

来自分类Dev

R如何获取字符串中的字符列表

来自分类Dev

C ++从字符串中获取字符我

来自分类Dev

循环获取字符串中的某些字符

来自分类Dev

如何从输入字符串中获取字符数?

来自分类Dev

获取字符串中的字符数?

来自分类Dev

在经典ASP中从字符串获取字符

来自分类Dev

从相似唱歌之间的字符串中获取字符

来自分类Dev

获取字符串中的特定字符

来自分类Dev

C ++从字符串中获取字符我

来自分类Dev

循环以获取字符串中的某些字符

来自分类Dev

从字符串中获取字符后的数字?

来自分类Dev

从跟随特定字符的行中获取字符串

来自分类Dev

如何获取字符串C ++中字符的值?

来自分类Dev

从字符串中获取字符的首次出现

来自分类Dev

如何获取字符串中字符的位置?

来自分类Dev

如何使用地图获取字符串中第二多重复的单词

来自分类Dev

获取字符串的unicode字符

来自分类Dev

从字符串值获取字符?

来自分类Dev

R提取字符串中的重复单词