2013-01-22 83 views
1
$string1 = "2_0_1AU13682.0AV+0.2" 

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

我有這兩個字符串。如何從兩者中提取7個字符的十進制數字?從Perl中的字符串中提取數字

從字符串1將是13682.0和字符串2將是13681.9

十進制數始終是7個字符,並始終在xxxxx.x

回答

5

形式嘗試使用正則表達式比賽操作這樣做:

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

Extracting-matchesRegexp-Quote-Like-Operators

+0

工作就像一個魅力。謝謝 ! :) – Gsuz

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