2011-08-07 6 views
-2

나는 파이썬에 비교적 새로운 그리고 난 내가 루프 정규식 그룹을 어떻게 이해하려고 노력 중이 야 예 :파이썬 정규식 그룹

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

어떻게해야합니까 루프 정규식에서 두 그룹? 감사합니다.

+1

무슨 뜻 이죠, "루프 그룹" ? 무엇을 성취하려고합니까? –

+0

정규 표현식은 2 개의 그룹 (. *?)과 일치하며 두 그룹 모두를 반복하고 싶습니다. –

+3

예를 고려해 볼 때 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags에 관심이있을 수 있습니다. –

답변

1

내가 필요한 대답을 ... 여기에 HTML을 구문 분석 정규식을 사용하지 않아야 방법에 대한 표준 호언 장담을 삽입이었다 :

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의 결과는 단순히 정합기를 함유하는 튜플들의 목록이다. 목록을 반복하는 방법을 모르는 경우에는 파이썬 튜토리얼을 시작해야합니다.