2016-03-21 5 views
-3

私はこのようなコードを持っています。Pythonでの正規表現の実装

<td class="check ABCD" rowspan="2"><center><div class="checkbox {{#if checked}}select{{else}}deselect{{/if}}" id="{{id}}" {{data "tool"} 

<td class="check" rowspan="2"><center><div class="checkbox {{#if checked}}select{{else}}deselect{{/if}}" id="{{id}}" {{data "tool"}}> 

上記のコードでは、クラス名とID名のみを抽出します。私はPythonで正規表現を使用することに関する知識はほとんど持っていません。

正規表現を使用してクラス名&のID名( ""の間のもの)のみを抽出するにはどうすればよいですか?またはこれを行うためのより良い方法はありますか? はいの場合は、見つけやすくしてください:)

ありがとうございます。あなたはPythonで正規表現のソリューションを求めているので、あなたは1を取得します

+0

これは正規表現で行う必要がありますか? – idjaw

+0

@idjawそれを抽出する他の方法はありますか?正規表現以外? –

+1

これがもっと大きなデータの一部であるかどうかはわかりません。しかし、これは間違いなくHTMLのように見えます。それを解析しようとするなら、[BeautifulSoup](https://pypi.python.org/pypi/beautifulsoup4) – idjaw

答えて

2

import re 
p = re.compile(ur'^.+?class="([^"]+)".+id="([^"]+)".+?$', re.MULTILINE) 
test_str = u"<td class=\"check ABCD\" rowspan=\"2\"><center><div class=\"checkbox {{#if checked}}select{{else}}deselect{{/if}}\" id=\"{{id}}\" {{data \"tool\"}\n<td class=\"check\" rowspan=\"2\"><center><div class=\"checkbox {{#if checked}}select{{else}}deselect{{/if}}\" id=\"{{id}}\" {{data \"tool\"}}>" 

re.findall(p, test_str) 

はこっちのライブの例を参照してください。それでもhttps://regex101.com/r/cG8dC5/1

、いくつかの他のユーザーは既に述べたように。 Regex isn't ideal for parsing(x)HTML。よりよく見てください:https://pypi.python.org/pypi/beautifulsoup4

+0

正規表現でHTMLを解析して解決策を投稿しないように助言しても、これは担当者にとっては多分隠れていませんか? – Jan

+2

Nope。それは質問に対する答えです。参考にしてください。あなたが私に尋ねるなら、「レンズで火をつける方法?」私はあなたに答えるだろう - 太陽と藁の間にそれを保持する。それにもかかわらず、それは最善の方法ではありません。よりライターを使用してください。 私は彼の質問に対する有効な答えだと思っています。私は彼に言いましたが、より良い方法があると言えば、これは潜んでいません。 – netblognet

+0

私は火のアナロジーが好きですが(+1)、私は彼にライターを買っていたでしょう:) – Jan