删除字符串中重复两次以上的字符

时间:2019-04-10 07:39:21

标签: r regex text-mining

我有这段文字:

F <- "hhhappy birthhhhhhdayyy"

我想删除重复的字符,我尝试了此代码

https://stackoverflow.com/a/11165145/10718214

它可以工作,但是如果重复超过2次,并且重复2次,则需要删除重复字符。

所以我期望的输出是

"happy birthday"

有什么帮助吗?

1 个答案:

答案 0 :(得分:4)

尝试使用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中的第一个捕获组。