r - 表情符号前加一个空格

标签 r

我正在尝试清理一些文本。我有一个表情符号列表,我不想将其从文本中删除。我想在这些表情符号之前加一个空格(如果还没有的话)。

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" 

最佳答案

正则表达式可以提供帮助。

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 :)"

关于r - 表情符号前加一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40879992/

相关文章:

r - 将连续时间序列数据分块为多个时间段和多个组的非连续时间窗口

r - r 中的数字点字符未完全显示

r - R 中的 S3 类方法

r - 如何使用scale_fill_gradient指定 "low"和 "high"并在两端获得两个音阶

r - 绘制时 Shapefile 和矢量文件不会精确重叠

r - 在 R 中将一个列表中的字符串与另一个列表进行匹配和替换

在 R 中使用 NA 值 reshape 数据框

r - dplyr 在链中使用 $ 获得最终值(value),例如mtcars %>% 选择(mpg)$mpg

java - 为什么我的虚拟机中的 R 计算不一致?

r - 如何在 k 均值中使用欧氏距离以外的不同距离公式