【问题标题】:R - Regex to remove foreign unicode characters [duplicate]R - 正则表达式删除外国 unicode 字符[重复]
【发布时间】:2023-04-02 20:25:01
【问题描述】:

我想使用 R 对 Twitter 帖子执行一些分析,例如 Donald Trump 的这条推文(通过 Twitter API 提取):

"Join me LIVE in South Korea\U0001f1fa\U0001f1f8\U0001f1f0\U0001f1f7\n#NationalAssembly #POTUSinAsia"

首先我想知道这些是否是我可以用来选择转义的 unicode 的正则表达式(例如:\U0001f1f8)。

我认为会起作用的表达式,例如:\\[[:alnum:]]{9} 不起作用。但是,我收到了一条有趣的错误消息:

grepl("\[[:alnum:]]{9}", x, perl = T) 中的错误:无效的正则 表达式 '[[:alnum:]]{9}' 另外:警告消息:在 grepl("\[[:alnum:]]{9}", x, perl = T) : PCRE 模式编译 错误“仅在类中支持 POSIX 命名类” '[:alnum:]]{9}'

另外,我想知道是否有一种方法可以将这些转义的 unicode 转换回它们应该表示的字符,以便我可以在应用程序的前端将它们显示给用户。

【问题讨论】:

    标签: r regex unicode


    【解决方案1】:

    您可以使用iconv 执行此操作。这将删除所有包含您的外来 Unicode 字符的非 ASCII 字符。

    teststring <- "Join me LIVE in South Korea\U0001f1fa\U0001f1f8\U0001f1f0\U0001f1f7\n#NationalAssembly #POTUSinAsia"
    
    iconv(teststring, "latin1", "ASCII", sub="")
    #[1] "Join me LIVE in South Korea\n#NationalAssembly #POTUSinAsia"
    

    【讨论】:

      猜你喜欢
      • 2016-02-08
      • 2018-02-17
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      相关资源
      最近更新 更多