1

私は、Google と手に入れることができるすべての Python ドキュメントを介して啓発を求めてキーボードに頭をぶつけてきましたが、遭遇した問題に対する答えを見つけることができませんでした。

Web サイトに対して実行する次の正規表現がありますが、Python は re.DOTALL を設定することを主張します。

\d+. +(?P<season>\d+) *\- *(?P<episode>\d+).*?(?P<day>\d+)(?:\/|\s)+(?P<month>[A-Za-z]+)(?:\/|\s)+(?P<year>\d+) +(?:<a .+><img .+></a>)? ?<a .*?>(?P<name>.*?)</a>

これにより、テレビ番組リストのシーズン/エピソードの配列が作成され、epguides.com/BurnNotice (TVRage リストを使用している場合) を除いて、改行の前にスペースがあるため (推測) 正常に動作します。

http://re-try.appspot.comを使用してテストし、問題を re.DOTALL の使用に絞り込みました。再試行時に有効にすると、スクリプトでスタンドアロンで実行したときに得られる結果が複製されます。DOTALL のチェックを外すと、期待どおりの結果が得られます。

Python に re.DOTALL を使用させないようにするにはどうすればよいですか?

このスクリプトは、Ubuntu と OS X の両方で実行されます。

4

1 に答える 1

2

.+>とに変更する必要が[^>]+>あります

.*?>[^>]*>

他のドットを置き換えることもできます[^\r\n]が、上記の 2 つの変更で十分です。

于 2010-01-05T01:03:22.203 に答える