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];

すなわち。数に最大で 1 つのドットのみを許可します。ここでは、一致全体が必要なため、明示的なキャプチャは必要ありません。

于 2012-12-04T12:23:21.850 に答える
4

どうですか:

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