如何从r中的字符串中删除以下unicode?

时间:2018-12-10 03:07:48

标签: r regex

我有以下字符串7007756484480000000<U+2660>75,648,448
我要删除7007756484480000000<U+2660>和逗号
我一直在尝试其他人在这里显示的许多不同方式,但我没有得到。如果有人可以帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

表达明确问题的语言可能存在障碍,但是如果我正在阅读请求,则将从该字符串中同时删除“ 7007756484480000000”和“,”。正则表达式函数pattern的第一个参数(gsub)在模式字符串中以"|"的形式写入时将接受逻辑或,因此我们可以将所有此类实例替换为{{1} }:

""

对于修改后的问题(如果确实是该字符串在R中显示时的样子),您可以使用以下命令删除所有内容,直到直角括号和逗号为止:

> x <- "700775648448000000075,648,448"
> gsub("7007756484480000000|,","",x)
[1] "75648448"

真正的Unicode字符如下所示:

gsub("(^.+>)|,",   # match either a comma or (everything from start to the ">")
      "",          # replace with empty string
      "7007756484480000000<U+2660>75,648,448")   # the input

如果它是R字符向量中的“真实” Unicode字符,则可以通过两种方式之一将其删除,或者使用字符类机制,或者使用必要的双倍(在这种情况下为三倍反斜杠),从而变为必要,因为R和PCRE共享一个转义字符(“ |”):

 z <- "\U2660"
 nchar(z)
#[1] 1
# whereas you just have ordinary characters
 z <- "<U+2660>"
 nchar(z)
#[1] 8