我正在尝试清理一些文字。我有一个我不想从文本中删除的表情符号列表。我想在这些表情符号之前放一个空格,只有在没有一个表情符号的时候。
emojis = as.character(outer(c(":", ";", ":-", ";-","="),c(")", "(", "]", "[", "D", "o", "O", "P", "p","8"),FUN = paste,sep=""))
如果我有推文说。
Tweet = "I am so happy:)"
我希望那是
Tweet = "I am so happy :)"
代码运行后。
这是一个非常简单的想法,但我找不到任何代码来执行此操作。
在他们之前需要空格的表情符号的完整列表:
":)" ";)" ":-)" ";-)" "=)" ":(" ";(" ":-(" ";-(" "=(" ":]" ";]" ":-]" ";-]" "=]" ":[" ";[" ":-[" ";-[" "=[" ":D" ";D" ":-D" ";-D" "=D" ":o" ";o" ":-o" ";-o" "=o" ":O" ";O" ":-O" ";-O" "=O" ":P" ";P" ":-P" ";-P" "=P" ":p" ";p" ":-p" ";-p" "=p" ":8" ";8" ":-8" ";-8" "=8"
答案 0 :(得分:4)
正则表达式可以提供帮助。
emojis = as.character(outer(c(":", ";", ":-", ";-","="),c("\\)", "\\(", "\\]", "\\[", "D", "o", "O", "P", "p","8"),FUN = paste,sep=""))
pat <- paste0("(\\w+)(", paste(emojis, collapse="|"), ")")
Tweet = "I am so happy:)"
sub(pat, "\\1 \\2", Tweet)
#[1] "I am so happy :)"