检测给定字符串中存在哪个表情符号

时间:2013-11-10 17:06:16

标签: java regex algorithm

我正在创建一个java应用程序,我需要删除表情符号所代表的“关键字”或“情感”所带来的表情符号。

例如

I am feeling very happy :)

应改为

I am feeling very happy smile.

我怎么能这样做,我尝试使用正则表达式,但我无法为此设计通用的正则表达式模式。

3 个答案:

答案 0 :(得分:3)

通过使用trie数据结构来保存所有表情符号,可以最佳地解决您的用例。在通过字符串的每一步中,您都可以在trie中向下一步(如果匹配了char)。这将允许您只通过一个字符串来查找所有出现的表情符号。

答案 1 :(得分:1)

除非您使用单个短语交换所有表情符号,否则广义正则表达式不会真正有用。你需要的是一个字典“:)”=>“笑”,“:(”=>“皱眉”。 一旦完成,你可以使用String.replace(String,String),甚至不用担心正则表达式。

答案 2 :(得分:0)

使用Hashmap索引表情符号怎么样?然后代替正则表达式,只需执行搜索替换!