-5

在 Perl 脚本中,我需要处理以下字符串:

426852  total

该字符串将始终包含一个整数,后跟一些空格和单词 total。我需要去掉变量的字符串部分,只留下一个整数,以便稍后在脚本中进行比较。

实现这一目标的最佳方法是什么?

谢谢

4

5 回答 5

4

由于您不需要其余部分,因此只需找到前导数字就足够了:

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

^- 字符串开头,\d- 数字,+- 一个或多个。结果将在$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

只需使用这样的正则表达式:

$string =~ /^(\d+)\s+\w+/;
$num = $1;
于 2012-07-25T13:15:15.043 回答
0
my @numbers = map { (split " ", $_)[0] } <DATA>;

print join "\n", @numbers;

__DATA__
126852  total
426852  total
于 2012-07-25T16:29:16.550 回答