首页 文章

如何从r中的字符串中删除以下unicode? [等候接听]

提问于
浏览
-5

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

1 回答

  • 0

    表达明显问题可能存在语言障碍,但如果我正在阅读请求,则要从该字符串中删除"7007756484480000000"以及"," . 当在模式字符串中写入 "|" 时,正则表达式函数 gsub 的第一个参数( pattern )将接受逻辑OR,因此我们可以用 "" 替换任何此类实例:

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

    对于修改后的问题(如果在R中显示的字符串看起来真的如此),您可以删除所有直到右括号括号和逗号的内容:

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

    一个真正的Unicode字符看起来像这样:

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

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

    z <- "\U2660"
    z
    #[1] "♠"
    gsub("\\U2660","",z)
    #[1] "♠"
    gsub("\\U2660","",z)
    #[1] "♠"
    
    #Method 1
    gsub("[\U2660]","",z)
    #[1] ""
    
    #Method 2
     gsub("\\\U2660","",z)
    #[1] ""
    

相关问题