내 텍스트의 형식이다 태그의 마지막 발생을 캡처 :는
<Story>
<Sentence id="1"> some text </Sentence>
<Sentence id="2"> some text </Sentence>
<Sentence id="3"> some text </Sentence>
내 작업은 지난 </Sentence>
후 닫는 태그 </Story>
를 삽입하는 것입니다. 본문에서, 모든 </Sentence>
다음에는 3 칸이옵니다. 나는 정규 표현식 </Sentence>(?!.*<Sentence)
을 사용하여 마지막으로 캡처를 시도하고 re.DOTALL도 사용했다. 그러나 그것은 작동하지 않습니다. 사용
실제 코드를 도와주세요
line = re.sub(re.compile('</Sentence>(?!.*<Sentence)',re.DOTALL),'</Sentence></Story>',line)
입니다. 감사.
당신은 정말 [파서를 사용]한다 (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)에 대한 이. –
@David @msw 잘못된 xml을 파서로 사용 하시겠습니까? 파서는 형식이 올바르지 않은 XML 문서를 볼 때 예외를 throw하지 않습니까? – afs
좋은 점, 일부는 있지만 일부는 누락 된 태그를 인식하고 자동으로 추가 할 수 있습니다. 나는 그것이 상황에 달려 있다고 생각한다. 그리고 파서가 예외를 던지더라도 유효하지 않은 태그의 위치를 포함 할 수 있습니다.이 태그는 ''태그를 삽입 할 장소입니다. –