Perlスクリプト内で、次の文字列を処理する必要があります。
426852 total
文字列には常に整数とそれに続く空白と合計という単語が含まれます。スクリプトの後半で比較できる整数を残すために、変数の文字列部分を取り除く必要があります。
これを達成するための最良の方法は何ですか?
ありがとう
残りは必要ないので、先頭の数字を見つけるだけで十分です。
$str =~ /^(\d+)/;
^
- 文字列の始まり\d
- 数字+
- 1 つ以上。結果は$1
、によって取得されます()
数字が先頭にある場合は、文字列をそのままにしておくことができます。Perl は、数値の後に非数値を含む数値を処理できます (ただし、警告は発行されます)。
正規表現は必要ありsplit
ません。これを行うことができます:
my $string = '426852 total';
my $number = (split " ", $string)[0];
say $number;
my @numbers = map { (split " ", $_)[0] } <DATA>;
print join "\n", @numbers;
__DATA__
126852 total
426852 total
次のような正規表現を使用してください。
$string =~ /^(\d+)\s+\w+/;
$num = $1;