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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GNU R:如何在字符串的每个单词的开头和结尾删除重复的字符?相关的知识,希望对你有一定的参考价值。

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

如果我有输入

str <- "Tthis iss a splendiddd ddayyy"

输出应该是

"This is a splendid day"

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

有了最好的祝福,埃里克

答案

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

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

以上是关于GNU R:如何在字符串的每个单词的开头和结尾删除重复的字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取以 ^ 开头和结尾的单词

如何编写一个函数,将句子中每个单词开头的所有辅音字符串转换为“r”,直到它变成元音?

如何使用正则表达式匹配不以某些字符开头或结尾的单词?

如何在以特定单词开头并以另一个单词结尾的字符串中出现多次[重复]

如何从 R 中的数据帧的开头和结尾删除 NA?

R语言 字符串