2011-03-15 92 views
0

* strong text *我有一個像這樣的字符串「x」,「x,y」,「x,y,h」 我想用戶preg替換刪除逗號內的雙重qutations和返回的字符串爲PHP preg_replace

「X」, 「XY」, 「XYH」

回答

1

你可以只使用常規的更換。

$mystring = str_replace(",", "", $mystring); 
1

你不需要preg_replace()這裏徘徊無論可能,你應該儘量避免它

$string = str_replace(',', '', $string); 
+0

他不想刪除所有逗號。請閱讀這個問題。 – 2011-03-15 09:14:14

1

我用下面,我已經找到了比通常更快的正則表達式是這種類型的更換

$string = '"x", "x,y" , "x,y,h"'; 
$temp = explode('"',$string); 
$i = true; 
foreach($temp as &$value) { 
    // Only replace in alternating array entries, because these are the entries inside the quotes 
    if ($i = !$i) { 
     $value = str_replace(',', '', $value); 
    } 
} 
unset($value); 
// Then rebuild the original string 
$string = implode('"',$temp); 
+0

我得到了相反的結果:'「x」「x,y」「x,y,h」'。 – 2011-03-15 09:26:15

+0

@Michiel - 在這種情況下,更改$ i = false的初始化;到$ i = true; – 2011-03-15 09:28:00

+0

@Michiel - 謝謝指出逆轉 – 2011-03-15 09:30:53

1

這將很好地工作:http://codepad.org/lq7I5wkd

<?php 
$myStr = '"x", "x,y" , "x,y,h"'; 
$chunks = preg_split("/\"[\s]*[,][\s]*\"/", $myStr); 
for($i=0;$i<count($chunks);$i++) 
    $chunks[$i] = str_replace(",","",$chunks[$i]); 
echo implode('","',$chunks); 

?>