如何更改以下字符串,使其不包含R中的多个连续问号/其他特殊字符?
"Nice one!!!"
应该成为
"Nice one!"
和
"Whazzup????!!"
应该成为
"Whazzup?!"
我尝试了多个正则表达式命令但没有成功。显然我可以用一个问号替换两个问号,但我希望它与特殊字符的数量无关。
这与标记的副本不同,因为它处理特殊字符。
答案 0 :(得分:5)
一个简单直接的解决方案是使用gsub作为标点符号正则表达式:
x <- "Whazzup????!!"
gsub('([[:punct:]])\\1+', '\\1', x)
[1] "Whazzup?!"
答案 1 :(得分:3)
我们可以使用gsub
gsub("([[:punct:]])\\1+", "\\1", str1)
#[1] "Nice one!" "Whazzup?!"
str1 <- c("Nice one!!!", "Whazzup????!!")