$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
$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
正規表現と一致演算子を使用してこれを試してください:
my $string1 = "2_0_1AU13682.0AV+0.2";
my ($res) = $string1 =~ m/(\d{5}\.\d)/;
print $res, "\n";
Extracting-matchesおよびRegexp-Quote-Like-Operatorsを参照してください。
次のように正規表現を使用します。
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