2013-02-17 35 views
1

使用上的每个数字的preg_replace说我有一个多行字符串像PHP字符串

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

使用+量词,而不是*

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

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

+0

谢谢,这工作。 – L84 2013-02-17 08:48:06

+0

@ L84。别客气 :) – 2013-02-17 08:48:26