【问题标题】:Regex to remove everything, but emojis from the string in R?正则表达式从R中的字符串中删除所有内容,但表情符号?
【发布时间】:2020-03-12 11:27:45
【问题描述】:

我有一个大的 .xlsx 文件,其中包含带有表情符号的推文。我正在做一个个人项目,我想从提取的表情符号中制作一个网络图。例如,如果我在其中一列中有这个:

Christian✝️, Husband????, Father????‍????‍????‍????, Former TV ????Meteorologist????, GOP????, LTC ????, Dolfan????, since ‘75, Yanks Fan⚾️ & UCONN Alum???? Go Whalers????!

那么我怎么才能只在输出时得到这个呢?

✝️????????‍????‍????‍????????????????????????⚾️????????

我在 Stack Overflow 和互联网上到处都找遍了,但我什么也没找到。我是 R 的初学者。

编辑

当我正常读取文件时,我得到了 Unicode(UTF-8 格式),但我不知道如何将这些 Unicode 转换为表情符号。网上有字典,但只给我一些表情符号的名字,已经很过时了。

编辑 2

有一个适用于 Linux 的解决方案,但我正在寻找一个解决方案/提示以使其在 Windows 中运行。

【问题讨论】:

  • 尝试删除 BMP 中的所有字符,gsub("[\\x{0000}-\\x{FFFF}]+","",x, perl=TRUE)
  • 非常感谢您的回复,非常感谢。我在其中一个狭窄的专栏中运行它并正确接收了所有内容。现在唯一的问题是,例如,在控制台中,我会像 "\U0001f4da\U0001f921" 一样。
  • ....而不是????????
  • 感谢@WiktorStribiżew 的帮助,使用它我现在也可以快速解析整个 .xlsx 文件。

标签: r regex twitter unicode emoji


【解决方案1】:

这对我有用,需要注意的是,控制台中只有十字会打印为表情符号,其余的是 unicode 表示。

# install.packages("remotes")
# remotes::install_github("hadley/emo")
emojis <- "Christian✝️, Husband?, Father?‍?‍?‍?, Former TV ?Meteorologist?, GOP?, LTC ?, Dolfan?, since ‘75, Yanks Fan⚾️ & UCONN Alum? Go Whalers?!"
emojis
only_emojis <- emo::ji_extract_all(emojis)
only_emojis

#  emo::ji_extract_all(emojis)
# [[1]]
#  [1] "✝️"      "\U0001f46b"      "\U0001f468"      "\U0001f469"      "\U0001f466"      "\U0001f466"      "\U0001f4fa"      "\U0001f418"      "\U0001f52b"      "\U0001f42c"      "\u26be" "\U0001f3c0"      "\U0001f40b"   

# install.packages("utf8")
utf8::utf8_print(only_emojis[[1]])  
# [1] "✝️​" "?​" "?​" "?​" "?​" "?​" "?​" "?​" "?​" "?​" "⚾​" "?​" "?​"

【讨论】:

  • 您好,谢谢。我实际上这样做是遇到了这个包,并且有类似的错误。我已经从每行字符串中取出所有空格,做了同样的事情,我也问了先生。 Wickham 在推特上,还没有收到任何回复:(
  • 我已经更新了答案,所以它在 Linux 上正常工作,但在 Windows 上失败...根据 utf8 包小插图,代码高于 0xffff 的字符,包括大多数表情符号,不支持窗户。
  • 哦,不。没关系,如果这适用于 Linux,我将使用虚拟机。至少这是我项目的进展,我自古以来就一直停留在这个阶段。感谢百万朋友。
  • 尽管 Windows 10 现在支持 emoji 并且拥有专用于它的整个 emoji 键盘,这还是相当令人惊讶的。
  • 是的,我也在看那个。我的猜测是它使用了新的 Windows API,而 R 使用的是旧的 API。
猜你喜欢
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 2011-10-16
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多