-5

Perlスクリプト内で、次の文字列を処理する必要があります。

426852  total

文字列には常に整数とそれに続く空白と合計という単語が含まれます。スクリプトの後半で比較できる整数を残すために、変数の文字列部分を取り除く必要があります。

これを達成するための最良の方法は何ですか?

ありがとう

4

5 に答える 5

4

残りは必要ないので、先頭の数字を見つけるだけで十分です。

$str =~ /^(\d+)/;

^- 文字列の始まり\d- 数字+- 1 つ以上。結果は$1、によって取得されます()

于 2012-07-25T13:19:52.453 に答える
2

数字が先頭にある場合は、文字列をそのままにしておくことができます。Perl は、数値の後に非数値を含む数値を処理できます (ただし、警告は発行されます)。

于 2012-07-25T13:19:26.617 に答える
2

正規表現は必要ありsplitません。これを行うことができます:

my $string = '426852  total';
my $number = (split " ", $string)[0];
say $number;
于 2012-07-25T13:39:16.387 に答える
0
my @numbers = map { (split " ", $_)[0] } <DATA>;

print join "\n", @numbers;

__DATA__
126852  total
426852  total
于 2012-07-25T16:29:16.550 に答える
0

次のような正規表現を使用してください。

$string =~ /^(\d+)\s+\w+/;
$num = $1;
于 2012-07-25T13:15:15.043 に答える