GNU R:如何在字符串的每个单词的开头和结尾删除重复的字符?

时间:2018-03-06 15:49:07

标签: r string replace character

在GNU R中,我需要在字符串的每个单词的开头和结尾删除重复的字符。

如果我有输入

str <- "Tthis iss a splendiddd ddayyy"

输出应为

"This is a splendid day"

有人知道怎么做吗?非常感谢你提前!

祝福, 埃里克

1 个答案:

答案 0 :(得分:1)

第一个gsub删除重复的前导字符,第二个删除尾随字符。第一个正则表达式匹配单词边界,后跟任何字符,后跟可能重复的相同字符。然后它将匹配替换为捕获组匹配的字符,即括号内的部分。大写或小写被忽略。第二个类似于尾随重复项。

ss <- gsub("\\b(.)\\1+", "\\1", str, ignore.case = TRUE, perl = TRUE)
gsub("(.)\\1+\\b", "\\1", ss)
## [1] "This is a splendid day"