regex - 如何在单词开头或单词内部找到三个相同的字母

标签 regex

我想找到一个单词开头重复超过三次的所有字母,例如

wwwhat

然后只保留一个重复的字母。然后在末尾添加(重复)
所以wwwhat将变成what(重复开头)

我还想找到一个单词中重复超过三次的字母,例如

whaaat

并让它成为什么(在里面重复)

到目前为止我已经尝试过了

(\S+)(\w)\1{2,}(\S+)

用于在单词内重复,但不起作用。

没有像wwwhaaaat这样的多次重复。

非常感谢!

最佳答案

您可以使用以下模式:

([a-zA-Z])\1{2,}(.*$)
  • ([a-zA-Z]) 匹配并捕获小写或大写字母。
  • \1{2,} 匹配第一个捕获组匹配的相同字母 2 次或更多次。
  • (.*$) 匹配并捕获字符串的其余部分。

替换为:

\1\2 (repeat)

实时检查正则表达式 here .

关于regex - 如何在单词开头或单词内部找到三个相同的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51678165/

相关文章:

python - 如何使过滤器正则表达式不忽略一行文本中的减号?

java - 正则表达式或其他从列表中获取所有元素名称

regex - 使用 sed 替换 HTML 文件中的可变文本

php - 如何使用 PHP 从字符串中提取 IMG 标签、值和文本

java - 用于测试字符串是否以数字结尾的正则表达式

java - 哈希集中的正则表达式搜索

python - 匹配字符串时捕获前n个词

java - 如何将正则表达式转换为 extglob 表达式?

ruby - 正则表达式提取不同 URL 的最后数字部分

javascript - 用于在第 n 个字符处拆分字符串的正则表达式单行代码,其中 n 是可变长度