给定这样的输入字符串:
"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>
<b>
其中和之间的“GETME”</b>
已被删除。基本上我想删除开始<b>
和结束</b>
标签之间的所有“GETME”实例。
我已经看到有一个“平衡”包可以解决这个问题,但它似乎有点矫枉过正。有更简单的解决方案吗?
就像是:
$teststr =~ s/(<b>[^>]*?)GETME(.*?<\/b>)/$1$2/g;
<i>
有效,但前提是在<b>
and之间没有像 a 这样的嵌套标签</b>
。
理想情况下,我可以写如下内容:
$teststr =~ s/<b>(.*?)</b>/{$1 =~ s/GETME//g}/g;
我在其中嵌套了另一个正则表达式,但如果可能的话,我不知道语法。