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

问题描述 投票:3回答:1

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

如果我有输入

str <- "Tthis iss a splendiddd ddayyy"

输出应该是

"This is a splendid day"

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

有了最好的祝福,埃里克

r string replace character
1个回答
1
投票

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

ss <- gsub("\\b(.)\\1+", "\\1", str, ignore.case = TRUE, perl = TRUE)
gsub("(.)\\1+\\b", "\\1", ss)
## [1] "This is a splendid day"
© www.soinside.com 2019 - 2024. All rights reserved.