2013-10-11 45 views
0

我要尋找一個正則表達式替換以下模式[| E14L0]從這個樣本串 好心幫正則表達式replacaing一個自定義模式

cash|E14L0^7.0,cash|E14L2^7.0,cash|E14L1^7.0,receivables^107.0,cash|E14L3^7.0, 

所需的輸出是

"cash"^7.0 "cash"^7.0 "cash"^7.0 "receivables"^107.0 "cash"^7.0 

要求所有模式| E {digit} L {digit}需要用'"'(雙引號)替換 所有','兩項之間需要用替換{太空雙引號}

感謝您的幫助。

回答

0

的正則表達式匹配模式將是\|E\d+L\d+\^([^,]+),,我相信你會使用它像這樣:preg_replace("\\|E\\d+L\\d+\\^([^,]+),", "\"$1 \"", target_string) - 注意在模式參數反斜線的兩倍。

編輯:我錯過了關於空間的第二個要求 - 添加。

0

你會需要兩個替換模式:

echo preg_replace(['/\|E\d+L\d+/','/\b,\b/'], ['"', ' "'], $str); 

的結果是:

cash"^7.0 "cash"^7.0 "cash"^7.0 "receivables^107.0 "cash"^7.0,