2015-05-18 2 views
0

Я хотел бы извлечь все параметры этих методов с помощью регулярного выражения. Однако из-за разметки SAL я не могу правильно вставить вложенные скобки. У меня есть эти строки для синтаксического анализа (многострочный):regex соответствие вложенным скобкам в python

STDMETHOD_(void, Method1)(
_Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount")) D2D1_GRADIENT_STOP *gradientStops, 
UINT32 gradientStopsCount) CONST PURE; 

STDMETHOD_(void, Method1)(
_Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount")) D2D1_GRADIENT_STOP *gradientStops, 
UINT32 gradientStopsCount) CONST PURE; 

Я попытался это:

\(((.|\n|\r)*?)\) 

Но поскольку имеются вложенные скобки для параметров, он не будет соответствовать должным образом. Действительно, я хотел бы, чтобы извлечь все, включая вложенную скобку строки как

MyFunc(...anything in here including more parenthesis...) 

Является ли это выполнимо с помощью одного регулярного выражения?

+0

быть более точным - какую часть строки вы хотите, чтобы соответствовать? –

+0

Для этого потребуется рекурсивное регулярное выражение, которое поддерживается модулем 'regex' python. Желательно использовать его – vks

ответ

0

Может быть, вы можете попробовать это

"*) (. (+)) + \;." с флагом s, чтобы соответствовать нескольким строкам.

Пример: https://regex101.com/r/fJ4cN3/1

Смежные вопросы