Php 从货币中提取数字$100

Php 从货币中提取数字$100,php,Php,如何从100美元的货币中提取唯一的数字 这不适用于所有“/\d+?\d+/”、$price、$matches; 匹配项[1]为空 我没有任何其他可能从字符串中提取数字您不需要preg\u match\u all,只需要一个普通的preg\u match。 你的模式显示有多个数字 这是可行的,但不确定字符串是什么样子。你的问题中没有包括这一点。 它只匹配数字 $price = "$100"; preg_match('/([\d\.]+)/',$price,$match); var_dump($m

如何从100美元的货币中提取唯一的数字

这不适用于所有“/\d+?\d+/”、$price、$matches; 匹配项[1]为空


我没有任何其他可能从字符串中提取数字

您不需要preg\u match\u all,只需要一个普通的preg\u match。 你的模式显示有多个数字

这是可行的,但不确定字符串是什么样子。你的问题中没有包括这一点。 它只匹配数字

$price = "$100";
preg_match('/([\d\.]+)/',$price,$match); 
var_dump($match); //100
最好是使用:

这还将允许通常属于货币金额的字符使用浮点数和逗号,并将其转换为适当的浮点值

$str = "$100";
preg_match_all('!\d+!', $str, $matches);
print_r($matches);

输出:100

奇怪的是,它看起来像是在>7.3.0中被删除的,正如您的演示所示,在业务中是10年,我从未见过该类:/@LawrenceCherone它回到了7.3.0 rc1以上,奇怪的是,它在alpha版本中消失了,但实际上那些版本更旧。加上1表示一个不太知名的类。与正则表达式示例相比,这种方法应该更受欢迎,特别是如果货币字符串可能比100美元更复杂,例如$1234567.223.@AaronSt.Clair,这远远不是一个用正则表达式解析的复杂字符串。问题是OP并没有给我们任何可以合作的东西。但是对于更复杂的字符串,您是正确的,除了numberformatter失败,而不是regex。
$str = "$100";
preg_match_all('!\d+!', $str, $matches);
print_r($matches);
Array ( 
   [0] => Array ( 
                 [0] => 100 
              )
     )

echo $matches[0][0];