C#regex解析PHP函数调用列表文件

时间:2015-07-08 10:04:32

标签: c# regex

我有一个简单的问题。我有一个PHP文件,其中包含很多函数调用,如下所示:

return self::_Call('client_changePassword',Array(
    $token,
    $password,
    $user_token
));

参数的名称和数量可能会有所不同,但调用本身始终具有此结构,包括空格和换行符。

我需要的是一个正则表达式,它将从PHP文件中获取所有这些调用,并将它们分成函数名(client_changePassword)和一组参数。由于该文件有几百个不同的调用,因此它也需要相当快。

正则表达式将在C#中用作控制台应用程序的一部分,该应用程序将生成简单的代码分析。基本上,我需要一个方法列表以及PHP在源代码中调用的参数,并将其与存储在不同项目中的定义列表进行比较。这将有助于我们的代码审查很多。

不,即使我正在尝试解析PHP代码,这也是与PHP相关。我的系统无法运行任何PHP代码,我甚至不想运行PHP代码。

1 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

return\s+self::_Call\('(?<name>[^']+)'\s*,\s*[Aa]rray\((?:\s+\$(?<param>[^,)\n]+),?\r?\n)+

请参阅demo

enter image description here