次のような入力文字列が与えられます。
"blah <b>abc <i>foo</i> GETME bar </b> GETME <b>something else</b>"
次のような結果文字列を生成する PERL 正規表現を書きたいと思います。
"blah <b>abc <i>foo</i> bar </b> GETME <b>something else</b>
と の間の「GETME」が削除さ<b>
れ</b>
ています。<b>
基本的に、開始タグと終了タグの間にある「GETME」のすべてのインスタンスを削除したいと考えてい</b>
ます。
これに対処する「バランスの取れた」パッケージがあるのを見てきましたが、やり過ぎのようです。もっと簡単な解決策はありますか?
何かのようなもの:
$teststr =~ s/(<b>[^>]*?)GETME(.*?<\/b>)/$1$2/g;
と<i>
の間にa のようなネストされたタグがない場合にのみ機能します。<b>
</b>
理想的には、次のように書くことができます。
$teststr =~ s/<b>(.*?)</b>/{$1 =~ s/GETME//g}/g;
別の正規表現をネストする場所ですが、そのようなことが可能であれば、構文がわかりません。