2

dd Month yyyy (2013 年 8 月 20 日) の形式で日付を抽出する必要があります。次の正規表現を試しました:

\d{2} (January|February|March|April|May|June|July|August|September|October|November|December) \d{4}

正規表現テスター (2013 年 8 月 19 日月曜日のいくつかのテキストで確認) で動作しますが、Python はそれを理解していないようです。私が得る出力は次のとおりです。

>>> 
['August']
>>> 

なぜそれが起こっているのか、誰かが私を理解してもらえますか?

ありがとうございました !

4

2 に答える 2

2

キャプチャ グループからのみデータを取得しているようです。これを試してください。

(\d{2} (?:January|February|March|April|May|June|July|August|September|October|November|December) \d{4})

全体に攻略組を入れて、その月を非攻略組にしました。今、あなたに「8月」を与えていたものは何でもあなたにすべてを与えるべきです.


ここでいくつかのpython正規表現を見ました

>>> p = re.compile('(a(b)c)d')
>>> m = p.match('abcd')
>>> m.group(0)
'abcd'
>>> m.group(1)
'abc'
>>> m.group(2)
'b'

これを見て、(この正規表現を実際にどのように使用していたかを示していなかったので) あなたが行っていたことがgroup(1)、上で提供した正規表現で機能するようになると推測しています。

また、すべてを取得するために使用できたようにも見えますgroup(0)(これがあなたがしていたことであるという仮定が正しければ)。これは、元の正規表現だけでなく、変更したバージョンでも機能します。

于 2013-08-19T21:11:49.103 に答える