Nihar Ranjan Nanda Ответов: 0

Как получить имя функции и параметры функции C с помощью регулярного выражения Python


Всем Привет,

Я новичок в python и пытаюсь изучить его во время работы.

Мне нужно узнать имя функции вместе с параметрами из списка "*.C" файлы, использующие регулярные выражения python.

Пример:
static void FunctionNameInC(const boolean_T *UnitDelay1_l, const
    boolean_T *UnitDelay2_n)
{


Желаемый результат таков :
Function Name: FunctionNameInC
ParametrsList: const boolean_T *UnitDelay1_l, const
    boolean_T *UnitDelay2_n


До сих пор то, что я пробовал, это
import re
result=re.findall(r'\(\w+','static void FunctionNameInC(const boolean_T *UnitDelay1_l, const boolean_T *UnitDelay2_n)')
print result 


выход:
['(const']

что далеко не приемлемо,как с этим поступить?

(1) Проблемы, с которыми я сталкиваюсь, как распознать любую строку в файле "*.c" в качестве определения функции . Я думал использовать последовательность "){" для идентификации имени функции,но мой формат кода "C" иногда непоследователен
"){"
и порой это
")\n{"
, как я могу решить эту проблему в регулярном выражении ,потому что, когда я попытался использовать in between
'\(\n\w+'
это не ужасно.
(2) предполагая ,что проблема 1 закончена,как я буду возвращаться назад в строке, чтобы напечатать имя функции, хотя я уже пробовал использовать
"^"
вещь ,но безрезультатная.

Любая помощь будет высоко оценена.

С уважением
Нихар.

Что я уже пробовал:

So far what I have tried is
<pre>import re
result=re.findall(r'\(\w+','static void FunctionNameInC(const boolean_T *UnitDelay1_l, const boolean_T *UnitDelay2_n)')
print result 


выход:
['(const']

Richard MacCutchan

Функции в языке Си имеют достаточно свободную форму, поэтому маловероятно, что вы сможете создать регулярное выражение для улавливания каждой вариации.

0 Ответов