Regex 具有特殊字符的R-gsub
我试图用Regex 具有特殊字符的R-gsub,regex,r,Regex,R,我试图用gsub替换我认为是标准的短跑。我测试的代码是: gsub(“-”、“ABC”、“报告-估算”) 不过,这没什么作用。我复制并粘贴了破折号到,它似乎是一个en破折号。该网站提供了十六进制,十二进制等代码的一个en破折号,我一直试图取代en破折号,但没有运气。建议 (作为奖励,如果你能告诉我是否有识别特殊字符的功能会有帮助的话) 我不确定SO的代码格式是否会改变破折号格式,因此我正在使用破折号(–)。您可以通过在正则表达式模式中指定它来替换en破折号 gsub("–", "ABC",
gsub
替换我认为是标准的短跑。我测试的代码是:
gsub(“-”、“ABC”、“报告-估算”)
不过,这没什么作用。我复制并粘贴了破折号到,它似乎是一个en破折号。该网站提供了十六进制,十二进制等代码的一个en破折号,我一直试图取代en破折号,但没有运气。建议
(作为奖励,如果你能告诉我是否有识别特殊字符的功能会有帮助的话)
我不确定SO的代码格式是否会改变破折号格式,因此我正在使用破折号(–)。您可以通过在正则表达式模式中指定它来替换en破折号
gsub("–", "ABC", "reported – estimate")
可以将所有连字符、en-和em-破折号与匹配
gsub("[-–—]", "ABC", "reported – estimate — more - text")
看
要检查字符串中是否有非ascii字符,请使用
> s = "plus ça change, plus c'est la même chose"
> gsub("[[:ascii:]]+", "", s, perl=T)
[1] "çê"
看
您将得到一个空结果(如果字符串仅由“word”字符和空格组成),或者-如这里所示-一些“特殊”字符 对于特殊字符替换,可以使用负数补码
gsub(“[^\\w]*”、“ABC”、“reported-estimate”、perl=True)
将用ABC替换所有特殊字符。[^\w]是一种模式,表示任何非正常字符。这很好。也许我对“特殊字符”没有使用正确的术语。我的意思是,这些字符不是标准的UTF-8。例如,当使用readr::write_csv()导出时,我发现这些字符看起来很奇怪。您提供的gsub是否可以更改以将“ô”标识为“特殊字符”。您可以将其与正则表达式一起使用,以匹配所有ascii:gsub(“[:ascii:]+”,“”,s)
。这将从保留结果中所有Unicode字符的字符串中删除所有ascii。您只需将perl=T
与上述正则表达式模式一起使用,因为这是一个PCRE构造。