2014-09-08 8 views
1

먼저, 정규식으로 html을 파싱하는 것이 이상적이지 않다는 것을 이해합니다. 그러나 필자는 필자가 필요로하는 해결책에 가깝다. 자바에서 regex로 html 태그 제거

는 문자열에서 HTML 입력을 말해봐 당신은 할 수 :

content = content.replaceAll("<[^\\P{Graph}>]+>", ""); 

이 기본적으로 인쇄 할 수없는 문자, 공백, 탭, 줄 바꿈 및 제어 문자를 제외한 HTML 태그를 제거합니다.

공백 문자에 문제가있는 경우를 제외하면 괜찮습니다.

<ht ml> (space somewhere in the middle) 

하지만 같이 그들 유지 :

< html> (because this one contains a space as the FIRST character). 

가 어떻게 이러한 목표를 달성하기 위해 replaceAll() 내 정규 표현식을 조정할 수 있습니다을 나는 모습 replaceAll 태그가 필요하십니까? 모든 의견을 보내 주셔서 감사합니다.

+0

공간이 가장 마지막에 어땠습니까? ''? – Unihedron

+0

@ Unihedron 그 태그를 교체해야합니다. – WizDom

답변

1

트릭을해야합니다. 귀하의 무효화 된 수업 후에 선택 그룹을 배치하십시오.

content = content.replaceAll("<[^\\P{Graph}>]+(?: [^\\P{Graph}>]*)*>", ""); 

첫 번째 브래킷 다음에 나오는 문자를 확인 했으므로 충분할 수도 있습니다.

content = content.replaceAll("<[^\\P{Graph}>]+(?: [^>]*)?>", "");