假设我在 R 中有以下字符串:text <- "[Peanut M&M\u0092s]"
我一直在尝试使用正则表达式通过搜索和删除 \u0092
来删除撇号:replaced <- gsub("\\\\u0092", "", text )
但是,以上似乎不起作用,结果与原始结果在同一行。执行此删除操作的正确方法是什么?
此外,如果我想删除打开和关闭 []
, 一次性完成还是在单独的行中完成更有效?
最佳答案
您可以使用 [^[:ascii:]]
使用类似 Perl 的正则表达式构造以从您的输入中删除非 ASCII 代码,并且您可以添加替代 [][]
也匹配方括号:
text <- "[Peanut M&M\u0092s]"
replaced <- gsub("[][]|[^[:ascii:]]", "", text, perl=T)
replaced
## => [1] "Peanut M&Ms"
见 IDEONE demo
如果您只打算删除
\0092
符号,您不需要像正则表达式这样的 Perl:replaced <- gsub("[][\u0092]", "", text)
见 another demo
请注意
[...]
是匹配 1 个符号的字符类,这里是 ]
或 [
, 或 \u0092
.如果您放置 ]
在字符类的开头,不需要转义。 [
不需要在字符类中转义(在 R 正则表达式和其他一些风格中也是如此)。
关于regex - R正则表达式删除Unicode撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33577571/