gpt4 book ai didi

javascript - 匹配不连续的重复字符

转载 作者:行者123 更新时间:2023-11-29 20:34:18 25 4
gpt4 key购买 nike

例如:

我想匹配被其他字符分隔的重复字符:

  • 匹配stress应该返回sss
  • 匹配 lambda 应该返回 aa
  • 匹配的 moonmen 应该返回 moonmn

我很接近,通过使用先行获取每个副本的第一个字符:

Regex101 link

['stress','lambda','moonmen'].forEach( (e) => {
console.log( e.match(/(.)(?=.*\1)/g) )
} )

但是我怎样才能得到所有重复的字符呢?

最佳答案

您的模式匹配最新的具有重复的字符。

作为替代方案,知道它们有重复项,您可以使用 negated character class删除所有非重复项。

let pattern = /(.)(?=.*\1)/g;
[
"stress",
"lambda",
"moonmen"
].forEach(s => {
let regex = new RegExp("[^" + [...new Set(s.match(pattern))].join('') + "]+", "g");
console.log(s.replace(regex, ''));
});

如果要考虑字符串中的特殊字符,可以使用 this page 上的函数转义具有特殊含义的字符。

关于javascript - 匹配不连续的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com