0

データをファイル ID に分割しています。ファイルIDごとにデータを調べて、正規表現で定義されている絵文字を検索しようとしています:(:)絵文字が見つかった場合は、a) 絵文字が見つかった b) このファイル ID で情報を保持する必要があります。このスクリプトを実行して顔文字辞書を出力すると、値として 0 が返されます。これはどのように可能ですか?私は初心者です。

emoticon = 0
for fileid in corpus.fileids():
    m = re.search('^(:\(|:\))+$', fileid)
    if m is not None:
        emoticon +=1
4

1 に答える 1

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 は本当にあなたが探しているものですか?
于 2013-08-17T00:06:29.443 に答える