我正在尝试从字符串中提取价格:
示例:
$money='Rs.109.10';
$price=preg_replace('/[^0-9.]/u', '', $money);
echo $price;
此示例的输出
.109.10
我期待以下输出:
109.10
帮我找到正确的正则表达式。
答案 0 :(得分:4)
preg_match('/(\d[\d.]*)/', $money, $matches);
$price = $matches[1];
或者更好,正如@ Smamatti的回答所示:
preg_match('/\d+\.?\d*/', $money, $matches);
$price = $matches[0];
即。数字中最多只允许一个点。因为我们想要整个匹配,所以不需要显式捕获。
答案 1 :(得分:3)
怎么样:
$price=preg_replace('/^\D+/', '', $money);