2011-08-07 113 views
-2

我是相當新的蟒蛇,我想了解我做我環路正則表達式組,例如:蟒蛇正則表達式組

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標準咆哮...]