R regex删除Unicode撇号

Sim*_*mon 4 regex unicode r gsub

可以说我在R中有以下字符串:

text <- "[Peanut M&M\u0092s]"

我一直在尝试使用正则表达式通过搜索和删除来消除撇号\u0092

replaced <- gsub("\\\\u0092", "", text )

但是,以上方法似乎无效,并且结果与原始结果相同。进行此删除的正确方法是什么?

此外,如果我想删除打开和关闭[],那么一次完成所有任务还是在单独的一行中执行所有操作是否更有效率?

Wik*_*żew 5

您可以将[^[:ascii:]]结构与类似Perl的正则表达式一起使用,以从输入中删除非ASCII代码,还可以添加替代方法[][]以匹配方括号:

text <- "[Peanut M&M\u0092s]"
replaced <- gsub("[][]|[^[:ascii:]]", "", text, perl=T)
replaced
## => [1] "Peanut M&Ms"
Run Code Online (Sandbox Code Playgroud)

IDEONE演示

如果仅计划删除\0092符号,则不需要像regex这样的Perl:

replaced <- gsub("[][\u0092]", "", text)
Run Code Online (Sandbox Code Playgroud)

观看另一个演示

请注意,这[...]是一个与1个符号匹配的字符类,此处为][\u0092。如果放在]字符类的开头,则不需要转义。[不需要在字符类内部进行转义(在R regex和其他一些样式中也是如此)。