当前位置: 代码迷 >> python >> 即使递归使用 REGEX 捕获函数名称
  详细解决方案

即使递归使用 REGEX 捕获函数名称

热度:58   发布时间:2023-06-19 09:11:54.0

我正在尝试使用 Python 中的正则表达式来捕获 PHP 代码源的函数名称,这些是捕获的行的示例,如下所示:

perf_mmap__read_init(map, true, &start, &end);
while ((event = perf_mmap__read_event(map, true, &start, end)) != NULL) {
if (perf_mmap__read_init(md, opts->overwrite, &start, &end) < 0)

递归问题是当我们在参数本身中调用函数时。 我的目标是捕获所有函数名称,甚至是我们在函数参数中调用的名称等等。

这是所引用问题的示例:

set_pmd(pmd, pfn_pmd(__phys_to_pfn(phys), sect_prot));

这是我的尝试,我使用了这个简单的正则表达式,但我无法参加递归用法:

Regex: (\\w+)\\(.*

我终于发现正则表达式:

([\\w]+)(?=\\()

该正则表达式帮助我捕获所有函数名称,即使是像 (if, for, while, switch) 这样的语句,所以,我在找到匹配项时添加了一个案例测试来消除它们。

if match not in ('if', 'while', 'for', 'switch'):

  相关解决方案