我是python的新手,我试图理解我是否循环正则表达式组,例如:
reobj = re.compile('<a href="(.*?)">(.*?)</a>', re.IGNORECASE)
result = reobj.findall(body)
如何从正则表达式循环2组? 谢谢!
答案 0 :(得分:6)
你真的在shell中试过吗?
>>> 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的标准咆哮......]
答案 1 :(得分:1)
我需要的答案是:
reobj = re.compile('<a href="(.*?)">(.*?)</a>', re.IGNORECASE)
result = reobj.findall(body)
for link in result:
print link[0] + link[1]