删除单词之间重复的字符

时间:2012-12-29 15:30:35

标签: regex

我正在尝试Regex 101

的测验

在任务6中,问题是

  

哦不!看来我的朋友昨晚在我的键盘上洒了啤酒,现在我的钥匙非常粘。有些时候我按一个键,我得到两个重复。你可以p pp l ll ea aa se ee 帮我解决这个问题吗?应删除粗体内容。

我试过this regex

([a-z])(\1{2})

但无法得到解决方案。

4 个答案:

答案 0 :(得分:3)

如果您想要匹配三个字符,那么您的正则表达式是正确的。如果你想匹配至少三个,那就是

([a-z])(\1{2,})

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

由于除了第一次出现之外你不需要捕捉任何东西,所以这些稍微好一些:

([a-z])\1{2}   # your original regex (exactly three occurences)
([a-z])\1{2,}
([a-z])\1\1+

现在,替换应该是角色的一个出现,仅此而已:

\1

答案 1 :(得分:2)

该网站上的谜语解决方案是:

/(.)\1{2}/g

由于键盘上的任何键都会卡住,因此我们需要使用.

正则表达式中的

\1表示匹配 1 st捕获组(.)匹配的任何内容。

替换为$1\1

你的正则表达式的其余部分是正确的,只是有不必要的捕获组。

答案 2 :(得分:1)

替换:

(.)\1+

使用:

\1

这当然要求您的正则表达式引擎支持反向引用...此外,在替换部分中,根据正则表达式引擎,\1可能必须写为$1

答案 3 :(得分:0)

我是用(\w)(\1+)?做的,但无法找到如何去除"删除"在给定的网站内......

最好的方法是用空字符串替换secound匹配的结果