用于替换自定义模式的正则表达式

时间:2013-10-11 08:39:36

标签: php regex

我正在寻找一个正则表达式,用于从此示例字符串中替换以下模式[| 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}

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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,