1

次のような複数行の文字列があるとします

A: 51
B: 221
C: 45

そして、私はそれを交換して取得したい

A: $51
B: $221
C: $45

私は試した

preg_replace("/[\d*][^0-9]*/","$currency$0",$pricelist);

ただし、すべての数字ではなく、すべての桁の前に通貨記号が追加されます。私も試しました

preg_replace("/[\d]*/","$currency$0",$pricelist);

ただし、金額は 2 つの通貨記号で囲まれています。

4

1 に答える 1

4

+の代わりに数量詞を使用し*ます。

preg_replace("/\d+/", "$currency$0",$pricelist);

量指定子を使用*すると、正規表現は最初にすべての数字に一致し、次に最後の数字の後の空の文字列に一致します。したがって、2 つの$記号が表示されます。1 つは数字が一致する前、もう 1 つは最後の数字の後に一致する空の文字列の前です。

于 2013-02-17T08:46:06.280 に答える