Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用正则表达式在函数中搜索内容_Regex_Recursion - Fatal编程技术网

Regex 使用正则表达式在函数中搜索内容

Regex 使用正则表达式在函数中搜索内容,regex,recursion,Regex,Recursion,如何使用正则表达式搜索包含使用全局变量的函数,而不首先运行“global$var” 这些文件如下所示: class TestClass { function correctFunc() { global $var; $name = $var->name; } function invalidFuncIWantToFind() { $age = $var->user->age; }

如何使用正则表达式搜索包含使用全局变量的函数,而不首先运行“global$var”

这些文件如下所示:

class TestClass
{
    function correctFunc()
    {
        global $var;
        $name = $var->name;
    }

    function invalidFuncIWantToFind()
    {
        $age = $var->user->age;
    }
}

我想找到所有InvalidBunchWantFind函数的函数名。在工作中,这确实会加快我们的工作,但我不知道如何做到这一点。

根据您的正则表达式实现,您可能可以使用lookback模式来实现这一点。声称例如.NET Framework实现可以做到这一点。(问题是,lookback可以包含可变数量的字母……这似乎会引起麻烦)。
因为我手头没有Visual Studio,所以我无法为您构建正则表达式,不过,很抱歉。

在处理PHP等非正则语言时不要使用正则表达式。如果您想要快速、脏且容易出错的解决方案,正则表达式可能可以工作。如果您想要一个稳定的解决方案,您应该研究上下文无关语法的解析器生成器(例如antlr.org)。你想要什么样的解决方案?我想要一个快速而肮脏的解决方案。:)我继续使用这个函数,“function\s+(\w+).*?(\{.*?(\{.*?\})*.*?})”似乎可以获得所有函数。现在我只需要得到那些包含“$var->”的函数,而不需要先得到“global$var”;但我不知道该怎么做。
$some_var=“{”;
破坏了提取正则表达式的函数。你不应该使用正则表达式。看看-PHP也是如此。是的,我一直在尝试使用lookbehind来实现它,但还没有什么工作。