正则表达式表情符号
问题描述:
我有数据分成fileids。我正在尝试通过每个文件ID的数据并搜索由正则表达式定义的表情符号:(
和:)
。如果发现一个表情符号,我需要保留这个信息a)在这个文件ID中找到表情符号b)。当我运行这段脚本并打印表情字典时,我得到0作为值。这怎么可能?我是一名初学者。正则表达式表情符号
emoticon = 0
for fileid in corpus.fileids():
m = re.search('^(:\(|:\))+$', fileid)
if m is not None:
emoticon +=1
答
它看起来对我来说,你的正则表达式的工作,并m
确实应该不会None
。
>>> re.search('^(:\(|:\))+$', ':)').group()
':)'
>>> re.search('^(:\(|:\))+$', ':)').group()
':)'
>>> re.search('^(:\(|:\))+$', ':):(').group()
':):('
>>> re.search('^(:\(|:\))+$', ':)?:(').group()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
但是,有几件事情值得商榷。
- 这样只会匹配的是100分%的表情
- 是真的写到FileID您所搜索的字符串是什么?
我在NLTK中使用fileid函数。每个文件包含1个句子。所以我想检查每个文件ID或句子中的表情符号。这不可能吗? O和我不想检查只包含表情符号的字符串,我不得不改变我的正则表达式。谢谢! :) – JohnDoe
我修复了我用fileid所犯的错误。 – JohnDoe