2016-08-05 2 views
-3

하나의 HTML 태그를 UUID 인 id 속성과 일치 시키려고합니다. 정규식이 동일한 입력 문자열로 올바른지 확인하기 위해 외부 리소스를 테스트했습니다. UUID는 동적으로 추출되어 문자열 교체가 필요합니다.정규식 검색 UUID가있는 HTML 태그

내가 기대하는 것 출력은 마지막 줄에 인쇄하는 것입니다 위해 :

content = '<tbody><tr class="ref_row" id="b9060ff1-015d-4089-a193-8fef57e7c2ef"><td><b>01/08/2016 14:41:00</b></td>' 
ref = 'b9060ff1-015d-4089-a193-8fef57e7c2ef' 
regex = '<[^>]+?id=\"%s\"[^<]*?>' % ref 
element_to_link = re.search(regex, content) 
print element_to_link.string 

인쇄 할 때 내가 얻을 출력은 전체 입력 문자열입니다

<tr class="ref_row" id="b9060ff1-015d-4089-a193-8fef57e7c2ef"> 

이 내가 노력 코드는 정규식이 잘못되었다는 것을 암시합니다. 무슨 일 이니?

나는 Beautiful Soup을 사용하지 말 것을 권유합니다. 정규 표현식으로 가능해야합니다.

+1

* "Beautiful Soup 사용을 제안하지 마세요. 정규 표현식과 함께 할 수 있어야합니다"* -하지만 ** 그 이유는 무엇입니까? ** 정규 표현식으로 HTML을 파싱하는 것은 [notoriously]입니다 (http://stackoverflow.com/a/1732454/3001761) foolhardy, 그리고 HTML *을 실제로 파싱하기위한 많은 도구가 있습니다. – jonrsharpe

+0

제 편집 내용을 롤백하지 마십시오. 문제가 있다면 설명해주십시오. – jonrsharpe

+0

이것이 html을 구문 분석하는 것에 관한 사실은 완전히 관련이 없습니다. 이것은 임의의 문자열 일 수 있으며 문제는 지속될 수 있습니다. 정규식을 사용하여 이것을 해결하고 싶습니다. –

답변

0

왜 그룹 방법을 사용하지 않습니까? 이것은 나를 위해 작동합니다 ".() 또는 검색()에 맞게 전달 된 문자열"파이썬 re 모듈 문서 MatchObject.string 속성 반환에서

element_to_link.group(0) 
0

합니다. group(), groups() 또는 groupdict()와 같은 MatchObject 메소드 중 하나를 사용하십시오.