2013-10-11 39 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,