Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取字符串中的第一个数字(如果有)_Php_String - Fatal编程技术网

Php 获取字符串中的第一个数字(如果有)

Php 获取字符串中的第一个数字(如果有),php,string,Php,String,我正在寻找一种从字符串中提取第一个数字的方法。这个例子 43 432Phill 21 432hill 21 43#1 Example 43,123 example 应该回来 43 432 432 43 43,123 我假设可以使用strpos并从a-z、a-z和#迭代指针。若要获得所有位置,请使用最低的非零值确定数字的结束点。这似乎有点过分了。有更好的方法吗 编辑:位置是稍后使用substr。如果有更好的方法让我

我正在寻找一种从字符串中提取第一个数字的方法。这个例子

    43
    432Phill 21
    432hill 21
    43#1 Example
    43,123 example
应该回来

    43
    432
    432
    43
    43,123
我假设可以使用
strpos
并从a-z、a-z和#迭代指针。若要获得所有位置,请使用最低的非零值确定数字的结束点。这似乎有点过分了。有更好的方法吗


编辑:位置是稍后使用substr。如果有更好的方法让我失望。

使用正则表达式,可以从字符串中提取数字

下面的语句应该可以做到这一点:
preg\u match\u all(“~\d+~”,$string,$match)


$match
$string

中包含的数字数组。使用正则表达式,可以从字符串中提取数字

下面的语句应该可以做到这一点:
preg\u match\u all(“~\d+~”,$string,$match)


$match
$string

中包含的数字数组,如果数字从开头开始,则可以这样做:

$number = floatval($string); //it will return float e.g. 432
如果使用逗号而不是小数点,例如43123,则必须首先将其替换为点:

$string = str_replace(',', '.', '43,123 example');

如果数字从开头开始,您可以这样做:

$number = floatval($string); //it will return float e.g. 432
如果使用逗号而不是小数点,例如43123,则必须首先将其替换为点:

$string = str_replace(',', '.', '43,123 example');

如果需要从字符串中提取第一个数字,则更新问题的标题。现在它是误导性的,并且与问题相矛盾。如上所述,你想要号码还是职位。示例数据是一个字符串,还是5个?这是最快的方法。除此之外,如果您不想使用自己的解决方案,也可以使用正则表达式检查变量。如果您需要从字符串中提取第一个数字,然后更新问题的标题。现在它是误导性的,并且与问题相矛盾。如上所述,你想要号码还是职位。示例数据是一个字符串,还是5个?这是最快的方法。除此之外,如果您不想使用自己的解决方案,也可以使用正则表达式检查变量。OP并不是在寻找整个字符串的浮点值。他只需要每个字符串开头的数字,OP并不是在寻找整个字符串的浮点值。他只想在每个字符串的开头加上数字。