带有特殊字符的R gsub

ZRo*_*oss 5 regex r

我试图用我认为的标准短划线替换gsub.我测试的代码是:

gsub("-", "ABC", "reported – estimate")

但这没有任何作用.我将破折号复制并粘贴到http://unicodelookup.com/#-/1中,似乎是一个冲刺.那个网站提供了一个简单的十六进制,十二进制等代码,我一直试图取代短划线,但我没有运气.建议?

(作为奖励,如果你能告诉我是否有识别特殊字符的功能会有帮助).

我不确定SO的代码格式是否会改变破折号格式,所以这里是我正在使用的破折号( - ).

Wik*_*żew 5

您可以通过在正则表达式模式中指定它来替换en-dash.

gsub("–", "ABC", "reported – estimate")
Run Code Online (Sandbox Code Playgroud)

您可以匹配所有连字符,en和em-dashes

gsub("[-–—]", "ABC", "reported – estimate — more - text")
Run Code Online (Sandbox Code Playgroud)

请参阅IDEONE演示

要检查字符串中是否存在非ascii字符,请使用

> s = "plus ça change, plus c'est la même chose"
> gsub("[[:ascii:]]+", "", s, perl=T)
[1] "çê"
Run Code Online (Sandbox Code Playgroud)

请参阅此IDEONE演示

您将获得一个空结果(如果一个字符串只包含"单词"字符和空格),或者 - 如此处 - 一些"特殊"字符.