私のパターンと一致しない文字列の一部を削除しようとしています。例えば、HTML文字列を削除する正規表現
<SYNC Start=364><P Class=KRCC>
<Font Color=lightpink>abcd
に私はそれを行うにはどうすればよい
<P Class=KRCC><Font Color=lightpink>
を削除したいですか?
私のパターンと一致しない文字列の一部を削除しようとしています。例えば、HTML文字列を削除する正規表現
<SYNC Start=364><P Class=KRCC>
<Font Color=lightpink>abcd
に私はそれを行うにはどうすればよい
<P Class=KRCC><Font Color=lightpink>
を削除したいですか?
`あなたのパターン 'とマッチして、ファイルに書き込んだり、データベースのテーブルを更新したりしてください。そうすれば、あなたは残りを削除しています。
解析しているHTMLが有効で、常に既知の標準形式に従っている場合は、貪欲でないパターンを使用して不要なもののほとんどを削除できます。
これらのサンプルは、正規表現を処理するために使用しているツール/フレームワークに基づいて変更する必要があります。私は簡潔さのために特殊文字をエスケープしていません。すべての段落タグに一致するように
:
<p.*?>(.*?)</p>
あなたは$ 1(またはグループにアクセスするために必要なものは何でもあなたの構文)でこれらの一致を置き換えます。
無関係な2つの開始タグと終了タグを誤ってマッチさせないように、貪欲でない(?)パターンを使用することが重要です。例:
<p.*>(.*)</p>
非常に異なる動作をします。次の例ではHTMLの場合、それは正しく2つの段落と一致しません:
<p>Lorem ipsum.</p><p>Lorem ipsum.</p>
代わりに、コンテンツを失うことになる最初の部分として、「<p>Lorem ipsum.</p><p>
」に一致します。あなたが特定のクラスを持つ段落を一致させる必要がある場合は
、あなたはこのようなものを使用することができます:あなたは非標準HTMLで作業を開始するときに物事がスティッキー取得
<p.*?class="delete".*?>(.*?)</p>
です。たとえば、これはすべての有効なHTMLであるが、それをクリーンアップするパターンが醜いのようになります。
<p>no class</p>
<p class=delete>no quotes</p>
<p class="delete">double quotes</p>
<p class='delete'>single quotes</p>
<p>space in closing tag</p >
<p>no closing tag
実際、HTMLを解析する正規表現には限界があると思っていました。 – Tomalak
私たちは、あなたが「私のパターン」によって何を意味するのか見当がつかない。あなたはより多くの情報を提供する必要があります。 –