- 论坛徽章:
- 0
|
本帖最后由 只爱睡觉 于 2012-05-01 08:11 编辑
回复 3# sjdy521
- #!/usr/bin/perl
- open (FF,"<c:/root.txt") or die "$!";
- while (<FF>) {
- if ($_=~/(\d+\.\d+\.\d+\.\d+\s-\s.\s.\d+\/\w+\/\d{4}:\d+:\d+:\d+\W.\d+\W)(dmt=\d+)\W(dpp=\d+)\W(billno=-\w+\-\d+\-\d+)\W(id=\d{1,25}\d+\w+)\W(dayitem=\d\*\d+\d\*\d)\W(hok4n=.*)\W(ts=\d+\W)/) {
- print $1."\n".$2."\n"."$3"."\n"."$4"."\n"."$5"."\n"."$6"."\n"."$7"."\n"."$8"."\n";
- #print $_;
- }
- }
复制代码 目前匹配的结果:
---------- perl ----------
110.143.45.135 - - [12/Jan/2012:1:09:05 +0800]
dmt=0
dpp=231
billno=-DDJ10628-20120111-1709050128
id=0000000000000000000000000D222A812
dayitem=2*244*6
hok4n=CED8BFB0DA62793E9CC840B53332CD7127925
ts=3223216515
Output completed (0 sec consumed) - Normal Termination
目前的问题是匹配到了$9后就无法输出了了,另外正则写的锉,各位将就看了,标量变量在()里,名称有声明。 |
|