使用perl从文件中的一行中提取数字

时间:2014-07-15 13:53:22

标签: perl split

假设我在文件中有以下行:

set gate report abc 28 -ext
set gate report xyz 29 -ext
set gate report hello 35 -ext

我想从行中提取数字28,29等,并将它们放入变量中。 假设此文件有100条相似的行,我该如何提取数字? 我可以用某种方式使用拆分吗?

1 个答案:

答案 0 :(得分:4)

您可以使用regular expression捕获数字并将其存储在数组中:

use warnings;
use strict;

my @nums;
while (<DATA>) {
    push @nums, $1 if /(\d+)/;
}

use Data::Dumper;
print Dumper(\@nums);

__DATA__
set gate report abc 28 -ext
set gate report xyz 29 -ext
set gate report hello 35 -ext

输出:

$VAR1 = [
          '28',
          '29',
          '35'
        ];

在这种情况下,我认为正则表达式比split更合适。

Basics of reading a file.