1

この単純な正規表現の一致が一致オブジェクトを返さない理由がわかりません。None を返します。何が間違っていますか?

私は全くの初心者です (昨日始めた) ので、フォルダ ツリーで特定のファイルを検索し、これらのファイルを開き、これらのファイル内の特定の行を見つけて、その行を新しいファイルに出力する小さなプログラムを作成したいと考えています。最初のステップを完了するために、os.walk によって返されたファイル名を特定のパターンと一致させたいと考えています。だから今、私は正規表現がどのように機能するかをチェックしており、私の理解では、以下のコードは一致するはずですが、印刷すると None になります。理由がわかりません。9 で始まるファイルを返すべきではありませんか?

import os, fnmatch, re
pattern = re.compile(r'^9')
teststring= "9-ZnPc.dat"
a=pattern.match(teststring, re.I)
print a

Output: None
4

1 に答える 1

3

ではなくre.Itoを渡す必要があるためです。compile()match()

>>> pattern = re.compile(r'^9', re.I)
>>> a=pattern.match(teststring)
>>> print a
<_sre.SRE_Match object at 0x1140168>
于 2012-06-03T20:33:30.963 に答える