gpt4 book ai didi

javascript - 计算字符串中重复的字母

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:14 26 4
gpt4 key购买 nike

我遇到了以下问题:我需要在字符串中找到重复的字符。基本上我想要的是像那样匹配的正则表达式

hello - ["ll"];
here - ["ee"];
happiness - ["pp","ss"];
pupil - ["pp"];

我有匹配连续重复字符的那个

  /([a-z])\1+/g

还有一个将匹配重复的字符以及它们之间的所有内容的那个

   /([a-z])(?:.*)\1+/g

但无法找出正确的。

最佳答案

你可以使用

([a-zA-Z]).*(\1)

Demo regex


由于您已经明确表示您正在寻找一种解决方案来处理字符串中双字母以外的内容,因此您应该使用非正则表达式方法,例如:

用字符串中的字符数构建一个关联数组:

var obj={}
var repeats=[];
str='banana'

for(x = 0, length = str.length; x < length; x++) {
var l = str.charAt(x)
obj[l] = (isNaN(obj[l]) ? 1 : obj[l] + 1);
}

console.log(obj)

打印

{ b: 1, a: 3, n: 2 }

然后构建您的规范数组:

for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key]>1) {
repeats.push(new Array( obj[key]+ 1 ).join( key ));
}
}
console.log(repeats)

打印:

[ 'aaa', 'nn' ]

关于javascript - 计算字符串中重复的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30512744/

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