Perl脚本,找到字符串的前半部分

时间:2012-07-25 13:10:20

标签: regex string perl

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

426852  total

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

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

由于

5 个答案:

答案 0 :(得分:4)

由于您不需要其余部分,只需查找前导数字即可:

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

^ - 字符串的开头,\d - 数字,+ - 一个或多个。结果将位于$1,由()

捕获

答案 1 :(得分:2)

如果数字在开头,您可以保持字符串不变。 Perl可以处理一个在数字后面包含非数字的数字(但是会发出警告)。

答案 2 :(得分:2)

不需要正则表达式,split可以为您执行此操作:

my $string = '426852  total';
my $number = (split " ", $string)[0];
say $number;

答案 3 :(得分:0)

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

$string =~ /^(\d+)\s+\w+/;
$num = $1;

答案 4 :(得分:0)

my @numbers = map { (split " ", $_)[0] } <DATA>;

print join "\n", @numbers;

__DATA__
126852  total
426852  total