如何删除R中的多个连续特殊字符?

flo*_*ian 0 regex r special-characters

如何更改以下字符串以在R中不包含多个连续的问号/其他特殊字符?

"Nice one!!!"
Run Code Online (Sandbox Code Playgroud)

应该成为

"Nice one!"
Run Code Online (Sandbox Code Playgroud)

"Whazzup????!!"
Run Code Online (Sandbox Code Playgroud)

应该成为

"Whazzup?!"
Run Code Online (Sandbox Code Playgroud)

我试验了多个正则表达式命令但没有成功.显然我可以用一个替换两个问号,但我希望它与特殊字符的数量无关.

这与标记的副本不同,因为它处理特殊字符.

JBG*_*ber 5

一个简单而直接的解决方案是使用gsub作为标点符号正则表达式:

x <- "Whazzup????!!"
gsub('([[:punct:]])\\1+', '\\1', x)
[1] "Whazzup?!"
Run Code Online (Sandbox Code Playgroud)