从字符串中获取数字

3

我想获取一个字符串中的数字,例如 "lorem 110 ipusm",我希望得到其中的 110。我已经尝试过以下方法:

preg_match_all("/[0-9]/", $string, $ret);

但是这返回了这个:
Array
(
    [0] => 1
    [1] => 1
    [2] => 0
)

我希望您能提供这样的东西。
Array
(
    [0] => 110        
)
4个回答

3

要捕获任何浮点数,请使用:

preg_match_all("/[+-]?\d+[\d\.Ee+]*/", $string, $matches);

例如:

举个例子:

<?
$string = 'ill -1.1E+10 ipsum +1,200.00 asdf 3.14159, asdf';
preg_match_all("/[+-]?\d+[\d\.Ee+]*/", $string, $matches);
var_dump($matches);
?>

运行时出现以下结果:

array(1) {
  [0]=>
  array(4) {
    [0]=>
    string(8) "-1.1E+10"
    [1]=>
    string(2) "+1"
    [2]=>
    string(6) "200.00"
    [3]=>
    string(7) "3.14159"
  }
}

3
使用 +(匹配1次或多次)操作符:
preg_match_all("/[0-9]+/", $string, $ret);

另外,你是否正在尝试支持符号?小数点?科学计数法?正则表达式还支持字符类的速记符号;[0-9]代表一个数字,所以你可以直接使用\d


3

您需要匹配多个数字:

preg_match_all("/[0-9]+/", $string, $ret);

3
使用/\d+/ - 这应该解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接