REGEX перехватывает имя функции даже при рекурсивном использовании - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь поймать имя функции источника кода PHP, используя регулярное выражение в Python, это пример цепочек строк, представленных в следующем:

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+)\(.*

1 Ответ

0 голосов
/ 17 сентября 2018

Наконец-то я обнаружил, что Regex:

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

Это Regex помогло мне перехватить все имена функций даже с помощью таких операторов, как (если, для, while, switch) Итак,Я исключаю их, добавляя кейс-тест при поиске соответствия.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...