PHP在字符串中的每个数字上使用preg_replace

时间:2013-02-17 08:43:20

标签: php regex

假设我有一个像

这样的多行字符串
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);

但用两个货币符号围绕金额。

1 个答案:

答案 0 :(得分:4)

使用+量词而不是*

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

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