繁体   English   中英

php preg_match_all括号模式

[英]php preg_match_all pattern for parentheses

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

$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]);
    }

}

需要返回:

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

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

From: preg_match_all("~((.+?))~", $string, $m);
To:   preg_match_all("~\((.+?)\)~", $string, $m);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM