如何识别scala中的表情符号?

时间:2014-07-13 18:43:39

标签: regex string scala twitter emoji

我正在处理来自Twitter Api的推文,很多推文都有表情符号。我正在尝试跟踪最常用的表情符号,但我实际上无法识别它们。

我正在使用:https://github.com/iamcal/emoji-data来识别表情符号。

我不知道如何判断字符串是否包含表情符号。我已经尝试将正则表达式与表情符号数据“统一”字段一起使用,我试过检查字符串是否包含该字段。我真的只是不确定如何检查表情符号..任何帮助将不胜感激。

val pattern = new Regex("(${a.unified})")
(pattern findAllIn text).mkString(",")

这是我尝试使用正则表达式。这找不到任何表情符号。我也尝试在表情符号数据的统一字段之前添加\ u,但这没有帮助。

2 个答案:

答案 0 :(得分:5)

您可以使用以下Regex查找表情符号字符(以及Unicode语言平面之外的其他字符):

[^\u0000-\uFFFF]

例如,我们使用以下代码从字符串中过滤出表情符号:

"some string".replaceAll("[^\u0000-\uFFFF]", "");

希望有所帮助。

答案 1 :(得分:0)

您的代码即将生效。要从text中提取表情符号,请尝试:

"""\p{block=Emoticons}""".r.findAllIn(text).mkString

例如:

scala> val text = "Use regex and now you have two problems  "
scala> """\p{block=Emoticons}""".r.findAllIn(text).mkString
res0: String =