Python 怎么过滤 emoji 表情符号呢? 下面是剔除表情字符串的代码片段 python2.7 下测试
- import re
- emoji_pattern = re.compile(
- u"(\ud83d[\ude00-\ude4f])|" # emoticons
- u"(\ud83c[\udf00-\uffff])|" # symbols & pictographs (1 of 2)
- u"(\ud83d[\u0000-\uddff])|" # symbols & pictographs (2 of 2)
- u"(\ud83d[\ude80-\udeff])|" # transport & map symbols
- u"(\ud83c[\udde0-\uddff])" # flags (iOS)
- "+", flags=re.UNICODE)
- def remove_emoji(text):
- return emoji_pattern.sub(r'', text)
参考 , 如果正则没有写对 还可以遇到
之类的错误 。
- sre_constants.error: bad character range
这里根据 unicode 范围来删除表情符号,通用的和 IOS 中的,应该不是很全,也没找到非常全的 list。后面证实还是有写过滤不掉,最好还是把字段改成 utf8mb4。。如果有更全的过滤方法,欢迎分享
- ALTER TABLE `table_name` MODIFY `nickname` VARCHAR(40) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
来源: http://www.bubuko.com/infodetail-1998679.html