2013-05-04 59 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) 

作爲馬爾新回答。