2014-10-07 5 views
0

난 그냥 HTML 태그을 제거하는 정규 표현식을 작성하려하지만 불행히도 나는 태그이 태그의 콘텐츠를 제거,이 욕심이 정규 표현식이라고합니다. 예를게으르고 욕심이 정규 표현식

에 대한

내가 div 태그를 제거 내 정규 표현식을 사용하여이 태그를

<div> HELLO </div> 

이있는 경우 (DIV) 내가이 태그 예컨대 (HELLO) 단어의 내용을 제거합니다.

지연 표현식을 쓰려면이 태그의 내용을 제거하지 말고 태그를 제거하기 만하면됩니다.

+2

태그? 좀 더 많은 맥락을 제시 할 필요가 있습니다. 그것이 의미하는 바에 나는 당신이 말하는 것에 대해 단서가 없습니다. –

+1

어떤 언어를 사용하고 있습니까? PHP를 사용하고 있다면 이미'strip_tags()'함수가 있습니다. 정규 표현식이 필요 없습니다. – Barmar

+0

@Barmar 아니요 C#을 사용합니다 – Moh

답변

0

거의 모든 스크립트 언어는 정확히 사용자가 원하는대로 수행 할 stip_tags입니다. 그러나 사용자 지정 솔루션을 원하면 다음 중 하나가 될 수 있습니다.

<.*?> 

단일 태그와 일치하도록 할 수 있습니다. 다음, 정규식의 의미 :

  • <은 문자 그대로 <과 일치합니다.
  • . 개행 문자를 제외한 모든 문자와 일치합니다.
  • *? 한정사를 0에서 무제한까지 가능한 한 몇 번씩 확장하여 필요에 따라 확장합니다. 게으른 욕심쟁이. 이는 가능한 한 적은 수의 문자와 일치한다는 의미입니다.
  • >은 문자 그대로>와 일치합니다.

이제 실행은 사용하는 언어 스크립트에 따라 조금씩 다릅니다.

$re = "/(<.*?>)/"; 
$str = "<p id=\"test\">This is a simple test</p>"; 

echo preg_replace($re, "", $str); 

확인 작업 예제를 보려면이 링크 demo :


예를 들어, PHP에서 당신은 같은 일을 할 것입니다.

var re = "<.*?>"; 
var str = '<p id="test">This is a simple test</p>'; 

alert(str.replace(new RegExp(re,"gm"), "")); 

확인 작업 예제를 보려면이 링크 demo :


그리고 자바 스크립트에서

, 당신은 뭔가를 할 수 있습니다.

희망이 있습니다. 유용합니다.

0

당신은 예를 들어, ungreedy 정규 표현식을 사용해야합니다

< [^>]+> 

.+ 모든 의미가 할 수있는 모든 문자를 취할 것입니다.

0
<[^>]*> 

이렇게하면 닫기 태그를 포함한 모든 태그가 제거되어야합니다.