regex - R正则表达式删除Unicode撇号

标签 regex r unicode gsub

假设我在 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/

相关文章:

javascript - 为什么 JavaScript RegEx 在调用之间保持状态?

C#:向字典添加数据

r - 如何在 gganimate 动画中左对齐绘图标签?

ios - 为什么我们应该使用 NSString 的 uppercaseStringWithLocale 来获取正确的大写字符串?

delphi - 从原始字节数组中搜索 Unicode 字符 - Free Pascal\Lazarus 或 Delphi

c++ - 需要一个正则表达式来仅从字符串中提取字母和空格

regex - 使用带有 sed 的正则表达式分组替换字符

python - 在python中使用rpy2将分位数输入ggplot geom_boxplot

r - 将 R 对象导入 Python 的最佳方法?

iphone - 如何检测 Unicode 字符是否映射到缺失符号方 block ?