You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式匹配字符串中重复出现的字母?

匹配字符串中重复字母的正则实现方案

核心正则构造

如果你需要匹配连续重复出现的英文字母(对应你给出的示例场景),直接使用如下正则即可:
/([a-zA-Z])\1/g

各部分含义说明:

  • ([a-zA-Z]):捕获组,匹配任意单个英文字母,匹配结果会存入编号为1的分组中
  • \1:反向引用,代表和第1个分组捕获到的内容完全一致的字符,和前面的捕获组组合就可以实现「两个连续相同字母」的匹配逻辑
  • g:全局修饰符,开启后会检索整个字符串的所有匹配结果,不会只返回第一个符合条件的内容

代码示例

直接搭配string.match()方法使用即可:

const inputStr = "asdoekrikkm";
// 匹配连续重复的字母段
const matchResult = inputStr.match(/([a-zA-Z])\1/g) || [];
console.log(matchResult); // 输出:['kk']

// 如果需要提取去重后的单个重复字母,可以做二次处理
const repeatedLetters = [...new Set(matchResult.map(item => item[0]))];
console.log(repeatedLetters); // 输出:['k']

场景扩展

  • 如果需要匹配所有连续重复字符(不限于英文字母,包含数字、符号等),可以把[a-zA-Z]替换为.,正则修改为/(.)\1/g
  • 如果不需要区分字母大小写,在末尾加i修饰符即可,正则为/([a-zA-Z])\1/gi
  • 如果需要匹配非连续出现的重复字母(比如字符串akbkc里的字母k),可以使用正则/([a-zA-Z])(?=.*\1)/g,匹配结果会直接返回所有出现过多次的单个字母

内容的提问来源于stack exchange,提问作者DBZ-05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:36:04