- 论坛徽章:
- 0
|
本帖最后由 珞水的大叔 于 2011-03-18 11:22 编辑
首先,请楼主不要中文逗号和英文逗号混用
不过你的思路已经很清晰了
下次记得要先把自己的代码贴出来啊
- #!/usr/bin/perl
- use strict;
- use warnings;
- my %result1; #存放有reg[N]的
- my @result2; #存放没有reg[N]的
- while(<DATA>){
- next if $_ !~ /^\s*end.+?(\/window\/).+?\bstart/;
- s/^\s+//;
- s/\s+$//;
- my @tmp = split /\s+(?=start)/;
- if($tmp[1] =~ /(start: qid\/wqw\/reg\[\d+\])/){
- push @{$result1{$1}},$tmp[0];
- }
- else{
- push @result2,($tmp[1],$tmp[0]);
- }
- }
- for (sort keys %result1){
- print "$_\n".(join "\n",@{$result1{$_}})."\n\n";
- }
- print "\n\n";
- print "$_\n" for @result2;
- __DATA__
- end:sdad/wea/window/csdw/wee[90] start: qid/wqw/reg[1]/32/ds
- end:sdad/wea/window/brs/ess[42] start: qid/wqw/reg[2]/ds/rea
- end:sdad/wea/window/asw/wwe[56] start: qid/wqw/reg[2]/ef/ew
- end:sdad/wea/window/bbs/wer[23] start: qid/wqw/reg[1]/qsc/rea
- end:sdad/wea/eew/asw/wwe[79] start: qid/wqw/reg[1]/ece/ppo
- end:sdad/wea/window/dee/wqde[81] start: qid/wqw/awe/ece/rea
- end:sdad/wea/window/asw/wwe[69] start: qid/wqw/caew/dse/rea
- end:sdad/wea/window/rte/dfd[42] start: qid/wqw/reg[1]/ece/xew
- end:sdad/wea/window/asw/wwe[42] start: qid/wqw/reg[3]/ewc/fgh
- end:sdad/wea/ewdsw/tee/jyt[42] start: qid/wqw/reg[2]/ece/rea
复制代码 |
|