4

我正在尝试从字符串中提取价格:

例子:

$money='Rs.109.10';
$price=preg_replace('/[^0-9.]/u', '', $money);
echo $price;

这个例子的输出

.109.10

我期待以下输出:

109.10

帮助我找到正确的正则表达式。

4

2 回答 2

4
preg_match('/(\d[\d.]*)/', $money, $matches);
$price = $matches[1];

或者,更好的是,正如@Smamatti 的回答所暗示的那样:

preg_match('/\d+\.?\d*/', $money, $matches);
$price = $matches[0];

IE。数字中最多只允许一个点。并且不需要显式捕获,因为我们想要整个匹配,在这里。

于 2012-12-04T12:23:21.850 回答
4

怎么样:

$price=preg_replace('/^\D+/', '', $money);
于 2012-12-04T12:25:47.427 回答