摆脱>之间的空间和<

时间:2014-01-29 07:28:44

标签: html perl compression

我使用以下代码:

    $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替换行,以免它弄乱我的面包屑?我想也许我可以说替换除了空格之外的任何字符之后的>

谢谢!

4 个答案:

答案 0 :(得分:2)

<div id="breadcrumb" itemprop="breadcrumb">
  <b>
    You are here: <a href="http://www.romancestuck.com/">RomanceStuck</a> &gt; <a href="http://www.romancestuck.com/marriage/love-and-marriage.htm">Marriage</a> &gt; 11 Tips for Improving a Strained Relationship
  </b>
</div>

>替换为&gt;

答案 1 :(得分:1)

我认为您可以在html代码中用>替换&gt;

<div id="breadcrumb" itemprop="breadcrumb">
  <b>
    You are here: <a href="http://www.romancestuck.com/">RomanceStuck</a> &gt; <a href="http://www.romancestuck.com/marriage/love-and-marriage.htm">Marriage</a> &gt; 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;

(虽然?没有用;你匹配所有空格直到<;如果可能的话,说匹配较少的空格是没有意义的。)