我正在尝试Regex 101中的测验
在任务 6 中,问题是
不好了!昨晚我的朋友们似乎把啤酒洒在了我的键盘上,现在我的键非常粘。有时当我按下一个键时,我会得到两个重复项。你能帮我解决这个问题吗?_ 应删除粗体内容。
我试过这个正则表达式
([a-z])(\1{2})
但无法得到解决方案。
我正在尝试Regex 101中的测验
在任务 6 中,问题是
不好了!昨晚我的朋友们似乎把啤酒洒在了我的键盘上,现在我的键非常粘。有时当我按下一个键时,我会得到两个重复项。你能帮我解决这个问题吗?_ 应删除粗体内容。
我试过这个正则表达式
([a-z])(\1{2})
但无法得到解决方案。
该网站上的谜题的解决方案是:
/(.)\1{2}/g
由于键盘上的任何一个键都会卡住,所以我们需要使用.
.
\1
正则表达式中的意思是匹配第一个捕获组(.)
匹配的任何内容。
替换为$1
或\1
。
您的正则表达式的其余部分是正确的,只是存在不必要的捕获组。
如果您想精确匹配三个字符,则您的正则表达式是正确的。如果你想匹配至少三个,那就是
([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+
和:
\1
这当然要求您的正则表达式引擎支持反向引用......此外,在替换部分中,根据正则表达式引擎,\1
可能必须写为$1
.
我会这样做,(\w)(\1+)?
但无法找到如何在给定站点内“删除”...
最好的方法是用空字符串替换第二次匹配的结果