从perl中的字符串中提取数字

时间:2013-01-22 19:20:39

标签: perl

$string1 = "2_0_1AU13682.0AV+0.2"

$string2 = "2_0_1AT+0.1CD13681.9"

我有这两个字符串。如何从两者中提取7个字符十进制数?

来自字符串1的13682.0和字符串2 13681.9

十进制数始终为7个字符,始终采用xxxxx.x

的形式

2 个答案:

答案 0 :(得分:5)

尝试使用 regex 匹配运算符执行此操作:

my $string1 = "2_0_1AU13682.0AV+0.2";
my ($res) = $string1 =~ m/(\d{5}\.\d)/; 
print $res, "\n";

请参阅Extracting-matchesRegexp-Quote-Like-Operators

答案 1 :(得分:2)

使用正则表达式,如下所示:

my @data = qw( 2_0_1AU13682.0AV+0.2 2_0_1AT+0.1CD13681.9 );

foreach my $str (@data) {

    if ($str =~ /(\d{5}\.\d)/) {
        print $1, "\n";
    }

}

输出:

13682.0
13681.9