假设我有一个像
这样的多行字符串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);
但用两个货币符号围绕金额。
答案 0 :(得分:4)
使用+
量词而不是*
:
preg_replace("/\d+/", "$currency$0",$pricelist);
使用*
量词,你的正则表达式首先匹配所有数字,然后匹配最后一个数字后面的空字符串。因此,您会看到两个$
符号 - 一个在匹配的数字之前,一个在最后一个数字之后匹配的空字符串之前。