Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除R中的多个连续特殊字符?_R_Regex_Special Characters - Fatal编程技术网

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

如何删除R中的多个连续特殊字符?,r,regex,special-characters,R,Regex,Special Characters,如何更改以下字符串,使其在R中不包含多个连续的问号/其他特殊字符 "Nice one!!!" 应该成为 "Nice one!" "Whazzup?!" 及 应该成为 "Nice one!" "Whazzup?!" 我尝试了多个regex命令,但没有成功。显然,我可以用一个问号替换两个问号,但我希望它独立于特殊字符的数量 这与标记的副本不同,因为它处理特殊字符。我们可以使用gsub gsub("([[:punct:]])\\1+", "\\1", str1) #[1] "Nice one

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

"Nice one!!!"
应该成为

"Nice one!"
"Whazzup?!"

应该成为

"Nice one!"
"Whazzup?!"
我尝试了多个regex命令,但没有成功。显然,我可以用一个问号替换两个问号,但我希望它独立于特殊字符的数量


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

我们可以使用
gsub

gsub("([[:punct:]])\\1+", "\\1", str1)
#[1] "Nice one!" "Whazzup?!"
数据
str1我们可以使用
gsub

gsub("([[:punct:]])\\1+", "\\1", str1)
#[1] "Nice one!" "Whazzup?!"
数据
str1一个简单而直接的解决方案是对标点符号regex使用gsub:

x <- "Whazzup????!!"
gsub('([[:punct:]])\\1+', '\\1', x)
[1] "Whazzup?!"

x一个简单而直接的解决方案是对标点符号regex使用gsub:

x <- "Whazzup????!!"
gsub('([[:punct:]])\\1+', '\\1', x)
[1] "Whazzup?!"

x上述解决方案不适用于特殊字符?我刚学到我需要使用[[:punct:]来代替。上面的解决方案不适用于特殊字符?我刚刚学会了我需要使用[[:punct:]来代替。谢谢你就像一个咒语一样有效。谢谢你就像一个咒语一样有效。我想这是因为JonGrub早些时候发布了相同的解决方案。无论如何谢谢你!是的,的确如此。我对你的帖子投了更高的票,因为我猜你是在同一时间打字的。还请注意,这是如何被错误地标记为重复的-u-抱歉更正了它:)@akrun我有点困惑,你的显示是旧的。当我发布我的时,这里没有其他东西。也许我不会刷新,但我从中获取了答案,并在正则表达式中查找标点符号。没有比平常更多的复制和粘贴…我想这是因为JonGrub更早发布了相同的解决方案。无论如何谢谢你!是的,的确如此。我对你的帖子投了更高的票,因为我猜你是在同一时间打字的。还请注意,这是如何被错误地标记为重复的-u-抱歉更正了它:)@akrun我有点困惑,你的显示是旧的。当我发布我的时,这里没有其他东西。也许我不会刷新,但我从中获取了答案,并在正则表达式中查找标点符号。没有比平常更多的复制和粘贴。。。