2014-07-26 93 views
3

比方說,我有一個字符串「1,000,786」。我希望將其轉換爲「1000786」。我知道preg_replace的第一部分應該是「[0-9],[0-9]」,但我不明白如何將數字值返回到preg_replace的'replace with'部分。謝謝。使用php,我將如何用[0-9] [0-9]替換[0-9],[0-9]?

編輯:對不起,我忘了提及它不像刪除逗號一樣簡單,因爲可能包含字母字符。只有逗號介於2個數字之間時,我是否希望它消失。

例如:「Apple,Banana 1,746」將是「Apple,Banana 1746」。

+0

你不需要正式的表達除非是練習,否則就像'''一樣,除去一個固定的字符(http://php.net/str_replace)。 –

+0

你說_it不是那麼簡單,只是刪除comma_。你能舉一個例子嗎?它不僅僅像刪除逗號一樣簡單?你剛剛刪除逗號的例子不是嗎? – putvande

+0

如果你看看蘋果和香蕉之間的逗號依然存在的例子。 – user1413341

回答

6

下面的正則表達式將刪除逗號只有當它的前面加上一個數字,它必須遵循由一個數字。

(?<=\d),(?=\d) 

替換字符串:

Empty string 

DEMO

您的代碼將是

<?php 
$string = '1,000,786'; 
$pattern = "~(?<=\d),(?=\d)~"; 
$replacement = ""; 
echo preg_replace($pattern, $replacement, $string); 
?> //=> 1000786 

OR

<?php 
$string = 'Apple, Banana 1,746'; 
$pattern = "~(?<=\d),(?=\d)~"; 
$replacement = ""; 
echo preg_replace($pattern, $replacement, $string); 
?> //=> Apple, Banana 1746 
+0

爲什麼downvote? –

2

您不必使用正則表達式爲,調用str_replace()函數就足夠了:

$s = str_replace(",", "", "1,000,786"); 
1

對於處理也文本之前,請考慮下面的代碼:

$text = 'Apple, Banana, 1,746'; 
preg_match('/[0-9]+,[0-9]+/', $text, $matches); 
$text = str_replace($matches[0], str_replace(',', '', $matches[0]), $text); 
相關問題