从字符串中删除重复的非标点字符

时间:2019-01-02 20:53:04

标签: r

我在R中有一个字符串,其中包含多个非标点重复字符(井号)。我正在尝试删除井号“#”的重复性,但只保留一个以分隔字符串中的单词。单词之间的磅符号数是随机的,并不总是相同的。

例如:

String="##Hello####World#Happy#######New###Ye@r!"

转换为

String_New="#Hello#World#Happy#New#Ye@r!"

gsub命令可以处理非标点符号吗?

2 个答案:

答案 0 :(得分:2)

我们需要指定+,即。一个或多个字符匹配,并在替换字符中添加单个#

gsub("#+", "#", String)
#[1] "#Hello#World#Happy#New#Ye@r!"

答案 1 :(得分:0)

这是一种执行所需操作的快速方法:

a <- "##Hello####World#Happy#######New###Year"
b <- gsub('#######', '#', a)
b <- gsub('###', '#', b)
b <- gsub('##', '#', b)

是的,如果您愿意,您也可以处理非惩罚性标志。