2016-12-15 16 views
-3

私は以下の問題があります:私はいくつかのHTMLコードを持っており、タグの内容を取得する必要があります。私は、何百万という部分文字列などを使用したくありません。私は正規表現を使用したいが、クラス、ID、または何もせずにタグをフィルタリングすることに問題がある。ここに私の正規表現です:Pythonの正規表現タグのコンテンツがタグ名でない

match = re.search('(?<=<span(.+)?>)(.*)(?=</span>)', '<span class="red">color</span>') 

Pythonは私が助けから

<span>color</span> 

みんなありがとうから

<span class="red">color</span> 

と からコンテンツを取得したいエラー

sre_constants.error: look-behind requires fixed-width pattern 

次投げます!

+0

[RegExはXHTML内蔵タグ以外のオープンタグと一致する可能性があります](http://stackoverflow.com/questions/) 1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – arco444

+1

*なぜ* HTMLを解析するためにregexを使用することを主張するのですか? –

+1

正規表現を使用する必要がありますか?なぜbeautifullスープのようなhtmlパーサーではない – Tobey

答えて

0

簡単な答え:findallを使用して、ルックバックをスキップしてキャプチャグループを取得します。

<span(.+)?>(.*?)</span> 

しかし、これは、多くの場合、失敗します。例えば。ネストされたタグ、テキストを含む文字列</span>など...

関連する問題