+ -
当前位置:首页 → 问答吧 → 如何使用perl实现多行内容替换。

如何使用perl实现多行内容替换。

时间:2011-03-29

来源:互联网

问题如下
要处理的内容
  1. style='font-family:SimHei;mso-ascii-font-family:Arial'>【汽柴油价格</span>20</a><span

  2. style='mso-bookmark:_Toc286325470'><span lang=ZH-CN style='font-family:SimHei;

  3. mso-ascii-font-family:Arial'>日起每吨提高</span>350</span><span style='mso-bookmark:

  4. _Toc286325470'><span lang=ZH-CN style='font-family:SimHei;mso-ascii-font-family:

  5. Arial'>元】</span></span></h4>

  6. style='font-family:SimHei;mso-ascii-font-family:Arial'>【发改委</span>:</a><span

  7. style='mso-bookmark:_Toc286325471'><span lang=ZH-CN style='font-family:SimHei;

  8. mso-ascii-font-family:Arial'>对股权投资企业适度监管】</span></span></h4>
复制代码
这是html元素,我想使用替换而非匹配捕获的方法得到如下结果
  1. style='font-family:SimHei;mso-ascii-font-family:Arial'>【汽柴油价格20日起每吨提高350元】</span></span></h4>
  2. style='font-family:SimHei;mso-ascii-font-family:Arial'>【发改委:对股权投资企业适度监管】</span></span></h4>
复制代码
想了半天也没有想到,
请各位perl 粉 帮忙写个替换实现。

作者: bintre   发布时间: 2011-03-29

把下面的程序打印成你想要的文件应该可以实现你要的功能。
open FILEIN, "<c.txt";

while(<FILEIN>){
   if(!/\<\/h4\>/){
       chomp;
       $lines .= $_;
   }
   else{
       $lines .= $_;
       chomp $lines;
       $lines =~ s/\<.*?\>//g;
       print $lines."</span></span></h4>\n";
       $lines = "";
   }   
}

作者: vongy   发布时间: 2011-04-03