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

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

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

从字符串 1 开始,13682.0从字符串 2 开始13681.9

十进制数始终为 7 个字符,并且始终采用以下形式xxxxx.x

4

2 回答 2

5

尝试使用正则表达式匹配运算符执行此操作:

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

请参阅提取匹配Regexp-Quote-Like-Operators

于 2013-01-22T19:28:35.550 回答
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
于 2013-01-22T19:34:35.357 回答