Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何搜索由空格分隔的特定单词索引?在Perl正则表达式中_Regex_Perl_Field_Extraction - Fatal编程技术网

Regex 如何搜索由空格分隔的特定单词索引?在Perl正则表达式中

Regex 如何搜索由空格分隔的特定单词索引?在Perl正则表达式中,regex,perl,field,extraction,Regex,Perl,Field,Extraction,我有一个像这样的日志文件 长度可变的字段1字段2字段3字段4。。。field5with 是否有一种使用perl正则表达式提取示例字段5的方法,如 用空格分隔并给我索引5???当然,你可以用空格分隔: my (@fields) = split /\s+/; print $fields[4]; 以下是完整的测试脚本: #!/usr/bin/perl -w use strict; while (<DATA>) { my (@fields) = split /\s+/;

我有一个像这样的日志文件

长度可变的字段1字段2字段3字段4。。。field5with

是否有一种使用perl正则表达式提取示例字段5的方法,如

用空格分隔并给我索引5???

当然,你可以用空格分隔:

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 (@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...
或者像这样:

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...

这不是询问者想要的。他想要的是:用空格划界,给我索引5Oh,那么我误解了这不是提问者想要的。他想要的是:用空格划界,给我索引5Oh,那我就误解了