我正在寻找一种从字符串中提取第一个数字的方法。这个例子
43
432Phill 21
432hill 21
43#1 Example
43,123 example
应该返回
43
432
432
43
43,123
我假设可以使用 strpos
并从 a-z、A-Z 和 # 迭代指针。 获得所有位置,然后使用最低的非零值来确定数字结束的点。这似乎有点矫枉过正。有没有更好的方法?
编辑:位置是稍后使用substr。如果有更好的方法,我会失望。
使用正则表达式,您可以从字符串中提取数字。
以下语句应该可以解决问题:
preg_match_all('~'d+~', $string, $match);
$match
是包含在 $string
中的数字数组。
如果数字从开头开始,您可以这样做:
$number = floatval($string); //it will return float e.g. 432
如果您使用逗号而不是小数点,例如 43,123,则必须首先将其替换为点:
$string = str_replace(',', '.', '43,123 example');