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

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

私はこの2本の弦を持っています。両方から7文字の10進数を抽出するにはどうすればよいですか?

文字列 1 からは に13682.0なり、文字列 2 からは になります13681.9

10 進数は常に 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";

Extracting-matchesおよび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 に答える