php preg_match_all括号模式

时间:2015-10-12 21:22:25

标签: php arrays preg-match-all

我试图在两个括号()之间获取值的每个实例。我的函数返回数组中的每个字符,而不是它应该在的两个字符串。我猜这个模式中有什么东西?我一直在尝试不同的方法。任何帮助将不胜感激。

$formula = "if([Paid] === 1, 'Need To Pay', 'Paid Up')+if([Paid] === 1, 'Million', 'Good to Go')"

我的班级:

<?php

class Formula {

    public function explode_formula($formula){
        echo $this->get_string_between($formula, "(", ")");
    }

    public function get_string_between($string, $start, $end){
        preg_match_all("~((.+?))~", $string, $m);
        print_r($m[1]);
    }

}

Nees返回:

[Paid] === 1, 'Need To Pay', 'Paid Up'
[Paid] === 1, 'Million', 'Good to Go'

1 个答案:

答案 0 :(得分:0)

通过转义外括号来更改正则表达式行:

<ul>
  <li>Column A long</li>
  <li>Column A</li>
  <li>Column A long</li>
</ul>
<ul>
  <li>Column B</li>
  <li>Column B long</li>
  <li>Column B</li>
</ul>

参考: http://php.net/manual/en/regexp.reference.escape.php