假设我在文件中有以下行:
set gate report abc 28 -ext
set gate report xyz 29 -ext
set gate report hello 35 -ext
我想从行中提取数字28,29等,并将它们放入变量中。 假设此文件有100条相似的行,我该如何提取数字? 我可以用某种方式使用拆分吗?
答案 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
更合适。