Regex 如何替换Perl中不属于锚定标记的文本?

Regex 如何替换Perl中不属于锚定标记的文本?,regex,perl,text,anchor,Regex,Perl,Text,Anchor,什么是Perl正则表达式,可以替换不属于锚定标记的select文本?例如,我只想替换下面代码中的最后一个“文本” blah <a href="http://www.text.com"> blah text blah </a> blah text blah. 废话废话。 谢谢。不要将regexp用于此类内容。使用一些合适的HTML解析器,只需对您感兴趣的HTML部分使用普通regexp即可。您不想尝试使用正则表达式解析HTML。试试看 我暂时获胜: $html =~ s

什么是Perl正则表达式,可以替换不属于锚定标记的select文本?例如,我只想替换下面代码中的最后一个“文本”

blah <a href="http://www.text.com"> blah text blah </a> blah text blah.
废话废话。

谢谢。

不要将regexp用于此类内容。使用一些合适的HTML解析器,只需对您感兴趣的HTML部分使用普通regexp即可。

您不想尝试使用正则表达式解析HTML。试试看


我暂时获胜:

$html =~ s|(text)([^<>]*?<)(?!\/a>)|replacement$2|is;
$html=~s |(text)([^]*?)|替换$2 |是;

但是,我对这场战争感到沮丧、沮丧和衰弱;在随后的努力中,我们也将继续追求Treebuilder。

gulp。正则表达式和html。去隐藏…前两个和后两个“废话”不是也“不是锚定标签的一部分吗?”@Jay:大概他在做
s/text/replacement/g
,所以废话不匹配。但这不是一个正则表达式(单独)的工作。啊。。。知道了。是的,参考关于这个主题的开创性文本:据说在斯凯河对岸的Ulthar,没有人可以用正则表达式解析html。使用正则表达式html解析器会让你像Charles Dexter Ward一样。你的正则表达式还将替换
文本
中的“文本”,因为它只查看第一个结束标记。这取决于您正在解析的内容——例如,如果它们是由另一个进程输出的小的、规则的HTML行,那么正则表达式可能是合适的。如果它们是实际的完整HTML页面,那么适当的HTML解析器就有意义了。。。
$html =~ s|(text)([^<>]*?<)(?!\/a>)|replacement$2|is;