如何在第一次出现任意数量的数字到空格时进行正则表达式匹配?

时间:2012-12-16 13:40:06

标签: php regex preg-match

我正在尝试使用preg_match()来匹配任何数量的第一次出现,直到第一个空格。

$var = '2275073540 blah blah blah';
preg_match('/[0-9 ]/', $var, $matches);

我希望$ matches [0]返回2275073540

3 个答案:

答案 0 :(得分:5)

preg_match('/(\d+)/', $var, $matches);
             | ^-|-------------- one or more digits
             ^   ^-------------- capturing group

答案 1 :(得分:3)

实际上不需要PCRE正则表达式,简单的格式扫描就足够了:

sscanf($var, '%f', $number); # $number is 2275073540 now

Demo

答案 2 :(得分:2)

这匹配到(并且不包括)第一个空格的任何内容:

preg_match('/^[^ ]+/', $var, $matches);

虽然它不会将输入限制为数字。为了那个原因。你会用:

preg_match('/^[[:digit:]]+/', $var, $matches);

或者像Cthulhu建议的那样,使用这个角色类的简写。