背景
在项目中需要对文本进行过滤,文本中主要的表情主要是微信的表情,其形式主要是“[表情名称]”,由于都是字符串,所以我打算使用正则的方式进行匹配后替换。
步骤
搜索微信表情库
要替换表情,需要有微信表情库,所以第一步先找微信的表情都有哪些,经过搜索,发现了这个页面 微信(Wechat)表情符号列表 有微信表情的列表,但是其是页面,不可以直接复制粘贴,因此就得想办法将其表情名称给拿下来。
获取微信名列表
对于页面的内容,我们可以使用JavaScript来获取dom节点的值,打开控制台,查看其节点,根据其特点,简单写了一段打印表情名称的js代码。
1 | JavaScript复制代码var doms = document.getElementsByClassName('emoji_card_list'); |
复制到控制台执行后,复制后得到这样格式的文本(只是部分内容):
1 | text复制代码[让我看看] debugger eval code:7:21 |
对于这样形式的内容,我们可以在文本编辑器中替换到后面内容,当然更可以使用Python来操作。
处理微信表情名称
在Python控制台中,我们可以很轻易的处理,通过下面的代码,可以获得最终的表情名称合集。
1 | python复制代码data = """上面复制的大段内容,复制后回车""" |
正则匹配表情
有了表情内容,我们就使用正则对文本匹配了,匹配的代码如下:
1 | python复制代码def remove_emoji(text): |
测试结果如下,符合要求:
1 | css复制代码>>> remove_emoji("[哈哈][闭嘴][闭嘴]") |
写在最后
因为我们项目中使用的是非标准Unicode表情,如果您的项目中使用的是标准的Unicode表情,可以使用Python的 emoji 包,里面有标准的表情列表,具体的可以参考网上的一篇文章使用python环境过滤文本当中的emoji表情。
本文转载自: 掘金