저는 현재 HTML을 가져와 일반 텍스트로 변환하는 펄 스크립트를 가지고 있습니다. 나는 모든 HTML 태그를 제거하기 위해 HTML :: TagFilter를 사용하고 있으며, 우리가 하나의 문제에 부딪친 것을 제외하고는 거의 완벽하게 작동하고있다. 있는 HTML이 예를 입력에서 "캡션"와 같은 비 스탠드 HTML 태그가 포함 된 경우 해당 태그가 제거되지 않는 아래 : 나는 도움이 필요 무엇Perl 정규식 텍스트 입력 처리
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam pulvinar, odio ut gravida fringilla, tellus mi ultrices felis, quis porta lacus sem ut lacus. Vestibulum massa justo, tristique id aliquet in, dapibus eu leo. Nam sapien risus, dictum et porttitor quis, egestas quis dui. Ut nec nisl felis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
[caption id="sample-id" align="sample-align" width="225" caption="Sample Caption"]<a href="http://www.domain.com/image.jpg"><img class="sample-image-class" title="Sample Title" src="http://www.domain.com/image.jpg" alt="Sample Alt" width="225" height="300" /></a>[/caption]
In hac habitasse platea dictumst. Duis imperdiet bibendum dolor ut ullamcorper. Suspendisse dui erat, facilisis sed aliquet non, elementum eu urna. Donec non nisi vel augue gravida imperdiet sed id tortor. Maecenas ullamcorper velit non dui imperdiet hendrerit.
완전히이 콘텐츠를 제거하는 간단한 펄 정규식 . 여러 접근법을 시도했지만 아무 것도 작동하지 않는 것 같습니다.
$text =~ s/[(\w)+](.*)[\/(\w)+]//g;
내가 바라고 더 나은 사람에 대한 간단한 운동은 다음과 같습니다 찾아 대괄호 []를 사용하여 비표준 HTML 태그의 모든 항목을 제거 할 다음과 같은 일이 내가 무엇을 찾고 있어요입니다 나는 정규 표현식에서.
미리 도움 주셔서 감사합니다.
나는'HTML :: TagFilter'을 모르는, 그래서 이것은 정직한 질문,하지만 당신은 단지'$자가> deny_tags()'에'caption'을 추가 할 수 있습니까? – CanSpice
@CanSpice - deny_tags()가 <> not []를 사용하는 표준 HTML 형식의 태그 만 지원하기 때문에 불행히도 작동하지 않습니다. –
오, 알았어요. 실제로 HTML이 아니며, HTML과 비슷한 형태로 나타나는 마크 업 태그이지만 <> 대신 []을 사용합니다. – CanSpice