【发布时间】:2012-11-11 12:14:01
【问题描述】:
我有一个类似的日志文件
field1 field2 field3 field4withvariablelength ... field5with...
有没有办法使用 perl 正则表达式提取字段 5,例如
“用空格分隔”和“给我索引 5”??
【问题讨论】:
标签: regex perl field extraction
我有一个类似的日志文件
field1 field2 field3 field4withvariablelength ... field5with...
有没有办法使用 perl 正则表达式提取字段 5,例如
“用空格分隔”和“给我索引 5”??
【问题讨论】:
标签: regex perl field extraction
当然可以,你可以用split来用空格分隔:
my (@fields) = split /\s+/;
print $fields[4];
这是一个完整的测试脚本:
#!/usr/bin/perl -w
use strict;
while (<DATA>) {
my (@fields) = split /\s+/;
print $fields[4];
}
__DATA__
field1 field2 field3 field4withvariablelength... field5with...
【讨论】:
或者像这样:
my $str = "field1 field2 field3 field4withvariablelength ... field5with...";
$str =~ m/field5(.*)$/i;
print $1; # type with...
如果你有其他领域:
$str =~ m/\s+field4(.*)\s+/i;
print $1; # type withvariable...
【讨论】:
"Delimit with spaces" and "Give me index 5"