정규 표현식을 사용하여 HTML에서 한 쌍의 의견을 일치시킵니다.
-
09-09-2019 - |
문제
다음과 같은 모습을 보이는 마코 템플릿이 있습니다.
% if staff:
<!-- begin staff -->
...
<!-- end staff -->
% endif
그렇게하면 직원 변수를 사실로 전달하면 해당 의견이 나타납니다. 나는 다음과 같은 보이는 정규 표현식을 사용하여 이것을 테스트하려고합니다.
re.search('<!-- begin staff -->.*<!-- end staff -->', text)
주석이 HTML 출력에 나타나는지 확인했지만 정규 표현식이 일치하지 않습니다. 나는 심지어 의견을 내려고 시도했다 (<!-- begin staff -->
그리고 <!-- end staff -->
)) re.escape를 통해, 그러나 여전히 운이 없습니다. 내가 뭘 잘못하고 있죠?
아니면이 테스트를 실행하는 더 좋은 방법이 있습니까?
해결책
기본적으로 .
Newlines와 일치하지 않습니다. 추가해야합니다 re.DOTALL
옵션.
re.search('<!-- begin staff -->.*<!-- end staff -->', text, re.DOTALL)
두 명 이상의 직원 섹션이 있으면 경기를 비밀로 만들 수도 있습니다.
re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
다른 팁
HTML 파서와 같은 것을 사용하십시오 htmlparser 대신에. 보다 XML과 HTML을 정규화하기 어려운 이유에 대한 몇 가지 예를 제공 할 수 있습니까? 이유를 위해.
제휴하지 않습니다 StackOverflow