2016-08-05 4 views
-3

私は、単一のHTMLタグをUUIDであるid属性と一致させようとしています。私は正規表現が同じ入力文字列で正しいことを確認するために外部リソースでテストしました。 UUIDは動的に抽出され、文字列の置換が必要です。正規表現検索UUID付きHTMLタグ

私が期待するでしょう出力は、印刷への最後の行のためにされています

content = '<tbody><tr class="ref_row" id="b9060ff1-015d-4089-a193-8fef57e7c2ef"><td><b>01/08/2016 14:41:00</b></td>' 
ref = 'b9060ff1-015d-4089-a193-8fef57e7c2ef' 
regex = '<[^>]+?id=\"%s\"[^<]*?>' % ref 
element_to_link = re.search(regex, content) 
print element_to_link.string 

印刷が全体の入力文字列であるとき、私が手出力:

<tr class="ref_row" id="b9060ff1-015d-4089-a193-8fef57e7c2ef"> 

これは私が試したコードですこれは、正規表現が正しくないことを示唆します。何が起きてる?

私は美しいスープを使用することを推奨しないでください。これは正規表現で可能である必要があります。

+1

*「美しいスープを使用することを推奨しないでください。これは正規表現で行うことができるはずです」* - しかし**なぜそれをしたいですか?**正規表現でHTMLを解析することは[notoriously]ですhttp://stackoverflow.com/a/1732454/3001761)foolhardy、実際にHTML *を解析するツールがたくさんあります。 – jonrsharpe

+0

私の編集をロールバックしないでください。問題がある場合は、説明をコメントしてください。 – jonrsharpe

+0

これがhtmlを解析するという事実は完全に無関係です。これはどんな文字列であっても問題は残るでしょう。私はこれを正規表現 –

答えて

0

なぜグループメソッドを使用しませんか?これは私の作品:

element_to_link.group(0) 
0

Pythonの再モジュールのドキュメントからMatchObject.stringプロパティが返す「(一致させるために渡された文字列)または検索を()。」。 group()、groups()、groupdict()などのMatchObjectのメソッドのいずれかを使用します。