ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何在python中构建常规词汇表?

2019-07-06 12:01:13  阅读:228  来源: 互联网

标签:python regex python-2-7 python-unicode


我在纯文本UTF32.red.codes文件中有一个表情符号代码列表.文件的简单内容是

\U0001F600
\U0001F601
\U0001F602
\U0001F603 
\U0001F604
\U0001F605
\U0001F606
\U0001F609
\U0001F60A
\U0001F60B

基于question,我的想法是从文件的内容创建正则表达式以捕获表情符号.这是我最小的工作示例

import re

with open('UTF32.red.codes','r') as emof:
   codes = [emo.strip() for emo in emof]
   emojis = re.compile(u"(%s)" % "|".join(codes))

string = u'string to check \U0001F601'
found = emojis.findall(string)

print found

发现总是空的.哪里错了?我正在使用python 2.7

解决方法:

您的代码将在python 3中正常运行(只需修复打印发现的打印(找到)).但是,在python 2.7中它不起作用,因为它的re模块有一个已知的bug(见this threadthis issue).

如果你仍然需要python 2版本的代码,只需使用regex模块,它可以与pip2安装正则表达式一起安装.然后用import regex导入它,替换所有re.正则表达式的语句. (即regex.compile和regex.findall)就是这样.它应该工作.

标签:python,regex,python-2-7,python-unicode
来源: https://codeday.me/bug/20190706/1397117.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有