在Perl脚本中,我需要处理以下字符串:
426852 total
字符串将始终包含一个整数,后跟一些空格和单词total。我需要删除变量的字符串部分,只留下一个我可以在脚本中稍后比较的整数。
实现这一目标的最佳方法是什么?
由于
答案 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