Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 删除单词之间的重复字符_Regex - Fatal编程技术网

Regex 删除单词之间的重复字符

Regex 删除单词之间的重复字符,regex,Regex,我正在试着做这个测验 在任务6中,问题是 哦,不!昨晚我的朋友们好像把啤酒洒得我键盘上到处都是,现在我的键盘粘得很厉害。有些时候,当我按下一个键时,我会得到两个副本。你能帮我修一下吗?应删除粗体内容 我试过了 但无法得到解决方案 该网站上的谜语解决方案是: /(.)\1{2}/g 因为键盘上的任何键都可能卡住,所以我们需要使用 正则表达式中的\1表示匹配第一个捕获组(.)匹配的内容 替换为$1或\1 您的正则表达式的其余部分是正确的,只是存在不必要的捕获组。如果您希望恰好匹配三个字符,则您的正

我正在试着做这个测验

在任务6中,问题是

哦,不!昨晚我的朋友们好像把啤酒洒得我键盘上到处都是,现在我的键盘粘得很厉害。有些时候,当我按下一个键时,我会得到两个副本。你能帮我修一下吗?应删除粗体内容

我试过了


但无法得到解决方案

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

/(.)\1{2}/g
因为键盘上的任何键都可能卡住,所以我们需要使用

正则表达式中的
\1
表示匹配第一个捕获组
(.)匹配的内容

替换为
$1
\1


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

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

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

由于您只需要捕获第一次发生的事件,因此这些事件稍微好一些:

([a-z])\1{2}   # your original regex (exactly three occurences)
([a-z])\1{2,}
([a-z])\1\1+
现在,替换应该正好是角色的一次出现,仅此而已:

\1
我想用
(\w)(\1+)
来做,但找不到如何在给定的站点中“删除”

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

替换:

(.)\1+
与:


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

,字面意思是“字符重复两次以上”这意味着
ppp
仍然可以,因为
p
重复了整整两次…@om39a该测验使用了什么版本的regex?我刚刚用正确的问题陈述编辑了问题。根据问题陈述,一个键可以产生1或3个字符,问题要求将重复的3个实例替换为1。捕获组太多,您需要捕获的只是第一个字符。@NHAHDH删除了“您不需要”部分。但除了+之外,我们应该使用{2}根据问题和NHAHDH的解释,老实说,我没有看确切的问题(站点需要JavaScript和登录等),因此如果第一个令牌之外需要两个令牌,那么是的;)@nhahtdh\1是什么意思?
\1
(.)\1+
\1