使用括号捕获函数名称

时间:2015-12-18 12:32:12

标签: php preg-match preg-match-all

我正在尝试捕获整个函数名称,例如:

player($var)

我试过了:

preg_match_all('/(function )(?P<name>\w+)/', $content, $matches, PREG_OFFSET_CAPTURE);

返回:

[2] =&gt;排列     (         [0] =&gt;排列             (                 [0] =&gt; __构造                 [1] =&gt; 140             )

    [1] => Array
        (
            [0] => player
            [1] => 365
        )

    [2] => Array
        (
            [0] => creates
            [1] => 13356
        )

    [3] => Array
        (
            [0] => onYouTubeIframeAPIReady
            [1] => 13475
        )

为什么这不返回函数变量?

1 个答案:

答案 0 :(得分:0)

要捕获变量,请将正则表达式更改为:

/(function )(?P<name>\w+\s*\([^)]*\))/

/(function )(?P<name>\w+)\s*\((P<variables>[^)]*)\)/

函数名称是命名组name和组variables

中的变量