我有这段文本:
F <- "hhhappy birthhhhhhdayyy"
我想去除重复字符,我尝试了以下代码
https://dev59.com/mWgu5IYBdhLWcg3wrIuR#11165145
它可以工作,但如果字符重复超过2次,我需要将其删除,如果重复2次,则保留。
因此,我期望的输出是
"happy birthday"
任何帮助?
我有这段文本:
F <- "hhhappy birthhhhhhdayyy"
https://dev59.com/mWgu5IYBdhLWcg3wrIuR#11165145
它可以工作,但如果字符重复超过2次,我需要将其删除,如果重复2次,则保留。
因此,我期望的输出是
"happy birthday"
尝试使用sub
,并使用模式(.)\\1{2,}
:
F <- ("hhhappy birthhhhhhdayyy")
gsub("(.)\\1{2,}", "\\1", F)
[1] "happy birthday"
正则表达式的解释:
(.) match and capture any single character
\\1{2,} then match the same character two or more times
我们仅替换与单个匹配字符相符的内容。数量\\1
表示sub
中第一个捕获组。
gsub("(.)\\1{2,}", "\\1", F)
或者gsub("(.)\\1\\1+", "\\1", F)
就可以了 ;-) - Cath