查找数字串中的第一个数字

时间:2014-01-23 04:14:10

标签: regex perl

您好我从文件中读取了以下字符串:

231 352 502 24 532 0 1234 5

如何使用perl正则表达式获取一串数字中的第一个数字?

我试过以下无济于事:

$num =~ /(\d+)/

感谢。

4 个答案:

答案 0 :(得分:2)

$s = "231 352 502 24 532 0 1234 5";
($num) = $s =~ /(\d+)/;
print $num;

答案 1 :(得分:1)

对于给定的样本输入,下面的工作正常:

$ echo 231 352 502 24 532 0 1234 5 | perl -n -e 'print $1 if /(\d+)(.*)/'
231

$ echo 231 352 502 24 532 0 1234 5 | sed -r 's/([0-9]+)(.*)/\1/'
231

答案 2 :(得分:1)

你非常接近。

试试这个

my $line = '231 352 502 24 532 0 1234 5';
my ($num) = $line =~ /(\d+)/;
print $num;

<强>输出

231

答案 3 :(得分:0)

这是你想要实现的目标吗?

演示:

http://regex101.com/r/tM7cJ3