2011-08-07 18 views
-2

私のpythonにかなり新しいだと私は私がIループ正規表現グループやる理解しようとしている、例:Pythonの正規表現のグループ

reobj = re.compile('<a href="(.*?)">(.*?)</a>', re.IGNORECASE) 
result = reobj.findall(body) 

は、どのように私の正規表現からループ2グループのですか? ありがとう!

+1

あなたは何を意味する、「ループはグループ」 ?あなたは何を達成しようとしていますか? –

+0

正規表現は2つのグループ(。*?)と一致し、両方のグループをループします。 –

+3

例を考えれば、http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tagsにも興味があるかもしれません。 –

答えて

1

私が必要と答えた:

reobj = re.compile('<a href="(.*?)">(.*?)</a>', re.IGNORECASE) 
result = reobj.findall(body) 


for link in result: 
     print link[0] + link[1] 
6

これは実際にシェルで試しましたか?

>>> body = """<a href="http://foo.com">Foo</a><br><a href="http://bar.com">Bar</a>""" 
>>> reobj = re.compile('<a href="(.*?)">(.*?)</a>', re.IGNORECASE) 
>>> result = reobj.findall(body) 
>>> result 
[('http://foo.com', 'Foo'), ('http://bar.com', 'Bar')] 

のでfindallの結果は、単純にマッチしたグループを含むタプルのリストです。リストを反復する方法がわからない場合は、Python入門チュートリアルを行う必要があります。

[あなたがここにHTMLを解析するために正規表現を使用しないでください方法については、インサート標準暴言...]