我正在尝试使用Python中的regex捕获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+)\(.*
答案 0 :(得分:0)
我终于找到了正则表达式:
([\w]+)(?=\()
该正则表达式可以帮助我捕获所有函数名,即使使用诸如(if,for,while,switch)这样的语句也是如此。因此,我消除了它们在找到匹配项时添加案例测试的麻烦。
if match not in ('if', 'while', 'for', 'switch'):