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

但这用两个货币符号包围了金额。

4

1 回答 1

4

使用+量词代替*

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

使用*量词,您的正则表达式首先匹配所有数字,然后匹配最后一个数字之后的空字符串。因此,您会看到两个$符号 - 一个在数字匹配之前,一个在空字符串之前,在最后一个数字之后匹配。

于 2013-02-17T08:46:06.280 回答