R:使用正则表达式检测表情符号

时间:2015-11-19 19:12:14

标签: regex r

我编写了一份我希望在文本中查找的表情符号列表。例如,表情符号列表可以是:

:)
:-(
):
:S
o_O
=D

文本可能非常“难”,也就是说,并非所有表情符号都用空格分隔:

text:S text=D. text :-(. text o_O text :)

如何使用其他字符串替换这些表情符号? 我试图使用一些相当简单的类型go gsub()

emoticons <- c(":)",":-(","):",":S","o_O","=D")
texts <- "text:S text=D. text :-(. text o_O text :)"

for(x in 1:length(emoticons)) 
  texts2 <- gsub(emoticons[x], " XXX ", texts, fixed = TRUE)

但这不是一路走来的,它只取代了一些表情符号。

1 个答案:

答案 0 :(得分:2)

尝试在表情符号模式中添加反斜杠以禁用元字符效果。然后将模式粘贴在一起以进行正则表达式搜索:

emoticons <- c(":\\)",":-\\(","\\):",":S","o_O","=D")
gsub(paste0(emoticons, collapse="|"), " XXX ", texts)
#[1] "text XXX  text XXX . text  XXX . text  XXX  text  XXX "