0
から無効なHTMLタグを削除する:Perlの正規表現は、私のような文字列が文字列
<div>[CODE]<br />test1</div>
<div>test2</div>
<div>test3</div>
<div>test4<br />[/CODE]</div>
の下に正規表現を使用して解析する:
$text =~ s#\[CODE\](.+?)\[\/CODE\]#<div>Code:</div><pre class="prettyprint">$1</pre>#isg;
それはいくつかのクローズといくつかの開始と<pre>
タグ内の文字列を返します。閉鎖されたdivではなく、以下のようになります
<div><div>Code:</div><pre class="prettyprint"><br />test1</div>
<div>test2</div>
<div>test3</div>
<div>test4<br /></pre></div
すべてのinvalを削除したい終了したが開始または開始されていないが閉じられていないid htmlタグ<pre>
タグ。
それは以下のように返す必要があります:
<div><div>Code:</div><pre class="prettyprint"><br />test1
<div>test2</div>
<div>test3</div>
test4<br /></pre></div
あなたが表示する最初の正規表現は解析していません。代わりになります。正規表現でHTMLを解析しないでください。 – simbabque
http://stackoverflow.com/a/1732454/1848654 – melpomene
これは難しい問題です。あなたのプログラムはどのタグが間違っているかをどのように知るでしょうかそれは些細な問題ではない。 – simbabque