2012-06-21 5 views
1

누군가가 저 질문에 대해 지적하기 전에, 저는 정규식으로 html을 파싱 할 수 없다는 것을 알고 있습니다 :) 그리고 이것은 내가하려고하는 것이 아닙니다.열려있는 모든 태그를 문자열로 바꿉니다.

내가 필요한 것은 다음과 같습니다.

입력 : html을 포함한 문자열입니다. 출력 : 내가 출력으로

<a><b><c></a></b></c>, I want 

***<a>***<b>***<c></a></b></c> 

를 얻을 그렇다면 모든 개방을 태그

***<tag> 

를 교체합니다.

내가 좋아하는 뭔가를 시도했다 :

(<[~/].+>) 

***$1 

로 교체하지만 실제로 내가 원하는 방식으로 작동하지 않습니다. 어떤 포인터?

명확화 : 입력에 자체 닫기 태그 나 주석이 없음을 보증합니다.

+0

그리고 '
'과 같은 자동 닫기 태그의 경우? html 코멘트는 어떻습니까? ' OmnipotentEntity

+0

@OmnipotentEntity 입력에 자체 닫기 태그 나 주석이 없음을 보장합니다. – 0x4B1D

답변

2

로 교체 : ^는 문자 클래스에서 항목을 제외 할 문자를하지 ~; .+은 욕심이 많으므로 최종 문자 인 > 앞에 가능한 한 많은 문자가 일치합니다. 로 변경 :

(<[^/].+?>) 

또한 아마 괄호를 삭제하고 언어에 따라, $0 또는 $&로 교체 할 수 있습니다.

+0

오! 고맙습니다 :) – 0x4B1D

1

사용해보십시오 : 당신은 두 문제가 (<[^/].*?>)***$1

관련 문제