正则表达式表情符号

问题描述:

我有数据分成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您所搜索的字符串是什么?
+0

我在NLTK中使用fileid函数。每个文件包含1个句子。所以我想检查每个文件ID或句子中的表情符号。这不可能吗? O和我不想检查只包含表情符号的字符串,我不得不改变我的正则表达式。谢谢! :) – JohnDoe

+0

我修复了我用fileid所犯的错误。 – JohnDoe