【问题标题】:Regex for replacaing a custom pattern用于替换自定义模式的正则表达式
【发布时间】:2013-10-11 08:39:36
【问题描述】:

我正在寻找一个正则表达式来替换此示例字符串中的以下模式 [|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} 需要替换为 '"'(双引号) 两个词之间的所有',' 都需要替换为' "' {空格双引号}

感谢您的帮助。

【问题讨论】:

    标签: php regex


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你需要两个替换模式:

      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,
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        • 2013-05-12
        • 2016-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-21
        相关资源
        最近更新 更多