Chinaunix

标题: 如何删除两行间含有某关建字的字符 [打印本页]

作者: zhenggb    时间: 2008-09-28 13:05
标题: 如何删除两行间含有某关建字的字符
----------需操作的字符串------------

dn:: sfsfsfsdfsfsdfsfsfs
line: love
line: har


dn:: sfsfsfsdfsfsdfsfsfs
line: man
line: har



dn:: sfsfsfsdfsfsdfsfsfs
line: love
line: har


dn:: sfsfsfsdfsfsdfsfsfs
line: man
line: har

dn:: sfsfsfsdfsfsdfsfsfs
line: man
line: har


dn:: sfsfsfsdfsfsdfsfsfs
line: sdfsd
line: har

-----------------------------------------

我需要把含line: man所在的两行空白行间的字符删除。
我 循环执行 s/.* dn:: .*? man .*? \n{2,}/igxs  可以做到,但效率太低(要处理字符很多),请各位强人出手相助!!!!
作者: fengc    时间: 2008-09-28 15:08
while (my $s = <>) {
  next unless $s =~ m/^dn::/

  print $s;
  $s = <>;
  next unless $s =~ m/^line: man/;
  print $s;
  $s = <>;
  print $s;
  $s = <>;
  print $s;
}


[ 本帖最后由 fengc 于 2008-9-28 15:10 编辑 ]
作者: khandielas    时间: 2008-09-30 09:31
厉害, 我都没看明白到底要干什么 :em11: :em11:




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2