2012-03-18 21 views
3

私はPythonには新しく、私はPHPの正規表現をPythonに変更しようとしていましたが、この複数行の問題でいくつかの問題が発生しました。私は過去のカップルの日の間、インターネットを上下にしてきました。誰かがそれを助けて偉大になるなら、私はそれを理解できないようです。ここで私が作った正規表現されていますpython 2.7 re.MULTILINE problems

​​

は、ここで私はそれを見つけるしたいHTMLです:

<td width="13%" class="TopHeader"> 

    <span class="red">I WANT THIS PART</span> 

</td> 

、それはちょうど私に空の配列を提供します。私が欠けているものは、おそらくかなりシンプルだろうと確信していますが、誰かが助けることができるなら、私はPythonには新しいと言いましたか?ありがとう!

p.s .: findallの出力は、pycurlが出力している部分とhtmlの部分が入っています。

答えて

1

re.DOTALLを使用してください。 '。'文字は、改行を含む任意の文字と一致します。

+0

OMGありがとうございました。私はそれがそれのような単純なものになることを知っていた! – classyhobo

2

あなたは.試合改行文字を作るためにre.DOTALLを使用する必要があります。

mlsTagRegex = re.compile(r'<td width="13%" class="TopHeader">(.*?)</td>', re.DOTALL) 

しかし、実際にあなたの代わりにBeautifulSoupまたはlxmlを使用して、HTMLを解析するための正規表現を使用しないでください。

+0

ありがとうございました – classyhobo

+0

@ zeekay:正規表現は任意のHTMLにマッチするのには適していませんが、これは正規表現が十分にうまくいく単純なケースのようです。 –

+1

これは、生成されたHTMLに*すべての種類の変更が加えられた場合に破損する非常に壊れやすい正規表現です。 – zeekay