Python 正则表达式表情符号

Python 正则表达式表情符号,python,nltk,Python,Nltk,我将数据拆分为文件ID。我正在尝试遍历每个文件ID的数据,并搜索正则表达式定义的表情符号:(和:)。如果找到表情符号,我需要保留信息a)该表情符号是在该文件ID中找到的b)。当我运行这段脚本并打印表情词典时,我得到0作为一个值。这怎么可能?我是初学者 emoticon = 0 for fileid in corpus.fileids(): m = re.search('^(:\(|:\))+$', fileid) if m is not None: emotico

我将数据拆分为文件ID。我正在尝试遍历每个文件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'
>>重新搜索('^(:\(|:\)+$,':)').group()
':)'
>>>重新搜索(“^(:\(|:\)+$”,“:)”).group()
':)'
>>>重新搜索(“^(:\(|:\)+$”,“:):(“).group()
':):('
>>>重新搜索(“^(:\(|:\)+$”,“:)?:(“).group()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“非类型”对象没有属性“组”
然而,有几件事对我来说是值得怀疑的

  • 这将只匹配100%表情符号的字符串
  • fileid真的是您要搜索的吗

我正在NLTK中使用fileid函数。每个文件包含一个句子。因此,我想检查每个文件id或句子中的表情符号。这不可能吗?O而且我不想检查仅包含表情符号的字符串,我必须更改我的正则表达式。谢谢!:)我修复了我在fileid中犯的错误。