0

我正在寻找一个正则表达式来替换此示例字符串中的以下模式 [|E14L0] 请帮助

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}需要替换为'"'(双引号)','两个术语之间的所有需要​​替换为' "'{space double quote}

感谢帮助。

4

2 回答 2

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,
于 2013-10-11T08:49:35.570 回答
0

匹配你的模式的正则表达式是\|E\d+L\d+\^([^,]+),,我相信你会这样使用它:preg_replace("\\|E\\d+L\\d+\\^([^,]+),", "\"$1 \"", target_string)- 注意模式参数中反斜杠的两倍。

编辑:我错过了关于空间的第二个要求 - 添加。

于 2013-10-11T08:46:53.907 回答