如何删除R中字符串中的所有特殊字符?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (746)

如何删除R中给定字符串中的所有特殊字符,并用空格替换每个特殊字符?

要删除的特殊字符是:~!@#$%^&*(){}_+:"<>?,./;'[]-=

提问于
用户回答回答于

你需要使用正则表达式来识别不需要的字符。对于最容易理解的代码,你需要str_replace_allstringr包中获得,但是gsub从R中也可以工作。

确切的正则表达式取决于你正在尝试做什么。您以删除问题中提供的特定字符,但删除所有标点符号要容易得多。

x <- "a1~!@#$%^&*(){}_+:\"<>?,./;'[]-=" #or whatever
str_replace_all(x, "[[:punct:]]", " ")

(相当于R的基数gsub("[[:punct:]]", " ", x)

另一种方法是换出所有非字母数字字符。

str_replace_all(x, "[^[:alnum:]]", " ")

请注意,根据你的语言环境,字母,数字或标点符号的定义略有不同,因此你可能需要稍微尝试一下才能得到你想要的内容。

用户回答回答于

只要将它们转换为ASCII,这将删除

astr <- "Ábcdêãçoàúü"
iconv(astr, to = "ASCII//TRANSLIT")

这导致了

[1] "Abcdeacoauu"

扫码关注云+社区

领取腾讯云代金券