2013-05-04 60 views
2

我有串PHP更换所有点到逗号

10.2,200.3,33.00

,我想将其替换为

10,2,200,3,33,00

我试图

preg_replace("/[.]$/","/\d[,]$/",$input);

但不更换!

我不能使用str_replace因为它是大学的任务

+3

为什么不使用[str_replace函数(http://php.net/manual/en/function.str-replace.php) – sachleen 2013-05-04 18:05:04

+0

'$'意味着结束的主题,在这里没用。 – mario 2013-05-04 18:05:17

+2

这应该很简单,你甚至不需要一个正则表达式来代替'。'。与',' – aaronman 2013-05-04 18:05:24

回答

6
preg_replace('/\./', ',', $input); 

这将取代所有'。'点,','。

preg_replace('/(\d+).(\d+)/', '$1,$2', $input); 

这是更具体的您的需要。括号中的$ 1代替第一位; $ 2秒。

- 购买我一杯啤酒NW;)

+0

在第二个表达式中使用文字点(即\) – bbe 2016-12-26 10:50:17

10

当哑巴str_replace()只要不使用正规表示法:

$str = str_replace('.', ',', $str) 

见文档:http://php.net/str_replace

+0

我喜欢你如何称为str_replace愚蠢!也许他正在使用正则表达式的原因不同。 – 2013-05-04 18:10:56

+2

@DavidChen这是什么东西op应该出来明确(我希望他做的)..因为它从问题和示例,目前形式的答案是正确的 – Anirudha 2013-05-04 18:17:22

+0

我不能使用这个,这是我在大学的任务 – user2287965 2013-05-04 18:22:03

2

你可以试试这个

preg_replace('/[^0-9\s]/', ',', $input) 

,但它是更好的,如果你使用

str_replace('.', ',', $input) 

作为马尔新回答。