perlで文字列から数値を抽出の方法

正規表現と文字列操作関数を利用して、Perlで文字列内の数字を抽出すことができます。

以下のような方法が一般的です。

  1. 数値を正規表現でマッチする:
my $string = "abc123def456";
my @numbers = $string =~ /(\d+)/g;
foreach my $number (@numbers) {
    print "$number\n";
}

これにより、文字列に含まれる連続する数字がすべてマッチングされて、配列@numbersに保存されます。

  1. 正規表現で非数字文字をマッチさせて空に置き換える:
my $string = "abc123def456";
$string =~ s/\D//g;
print "$string\n";

これは文字列内の数値以外の文字を空に置き換えて、数値のみを残します。

  1. 分ける
my $string = "abc123def456";
my @parts = split /\D+/, $string;
foreach my $part (@parts) {
    print "$part\n" if $part =~ /\d/;
}

こうすると、文字列は非数値文字ごとに配列@partsに分割され、そのうち数値を含む要素をフィルタして出力されます。

これらの手法は具体的な状況に応じて使い分けられ、文字列の形式とニーズに合わせて最適な手法が選択されます。

bannerAds