我使用以下代码:
$page_entire_code =~ s/> +?</></g;
删除HTML网页中>
和<
之间的空格。但是,我注意到它弄乱了我的网页的面包屑。例如:
<div id="breadcrumb" itemprop="breadcrumb">
<b>
You are here: <a href="http://www.romancestuck.com/">RomanceStuck</a> > <a href="http://www.romancestuck.com/marriage/love-and-marriage.htm">Marriage</a> > 11 Tips for Improving a Strained Relationship
</b>
</div>
压缩到:
<div id="breadcrumb" itemprop="breadcrumb"><b>You are here: <a href="http://www.romancestuck.com/">RomanceStuck</a> ><a href="http://www.romancestuck.com/marriage/love-and-marriage.htm">Marriage</a> > 11 Tips for Improving a Strained Relationship</b></div>
>
链接之后的RomanceStuck
之后没有空格。如何更改我的Perl替换行,以免它弄乱我的面包屑?我想也许我可以说替换除了空格之外的任何字符之后的>
。
谢谢!
答案 0 :(得分:2)
<div id="breadcrumb" itemprop="breadcrumb">
<b>
You are here: <a href="http://www.romancestuck.com/">RomanceStuck</a> > <a href="http://www.romancestuck.com/marriage/love-and-marriage.htm">Marriage</a> > 11 Tips for Improving a Strained Relationship
</b>
</div>
将>
替换为>
答案 1 :(得分:1)
我认为您可以在html代码中用>
替换>
<div id="breadcrumb" itemprop="breadcrumb">
<b>
You are here: <a href="http://www.romancestuck.com/">RomanceStuck</a> > <a href="http://www.romancestuck.com/marriage/love-and-marriage.htm">Marriage</a> > 11 Tips for Improving a Strained Relationship
</b>
</div>
答案 2 :(得分:0)
这个正则表达式可能是:/&gt;(\ s | \ n)?(&lt; | [a-Z])/ 替换为空字符。它应该删除结束标记和打开一个或任何文本之间的空格或行返回。
答案 3 :(得分:0)
要“替换&gt;来自除空格之外的任何字符”,您可以这样做:
$page_entire_code =~ s/([^ ]>) +?</$1</g;
或更近期的perls,
$page_entire_code =~ s/[^ ]>\K +?</</g;
(虽然?没有用;你匹配所有空格直到<
;如果可能的话,说匹配较少的空格是没有意义的。)