Python 正则表达式匹配C';s多行预处理器语句

Python 正则表达式匹配C';s多行预处理器语句,python,regex,Python,Regex,我需要的是匹配多行预处理器的语句,例如: #define max(a,b) \ ({ typeof (a) _a = (a); \ typeof (b) _b = (b); \ _a > _b ? _a : _b; }) 关键是要匹配#define和last}之间的所有内容,但我仍然不知道如何编写regexp。我需要它在Python中工作,使用“re”模块 谁能帮帮我吗 谢谢我想这样做会奏效的: m = re.compile(r"^#

我需要的是匹配多行预处理器的语句,例如:

#define max(a,b) \
       ({ typeof (a) _a = (a); \
           typeof (b) _b = (b); \
         _a > _b ? _a : _b; })

关键是要匹配
#define
和last
}
之间的所有内容,但我仍然不知道如何编写regexp。我需要它在Python中工作,使用“re”模块

谁能帮帮我吗


谢谢

我想这样做会奏效的:

m = re.compile(r"^#define[\s\S]+?}\)*$", re.MULTILINE)
matches = m.findall(your_string_here)
这假设您的宏都以“}”结尾,结尾处有一个可选的“')。

这应该可以做到:

r'(?m)^#define (?:.*\\\r?\n)*.*$'

(?:.\\\\r?\n)*
匹配以反斜杠结尾的零行或多行,然后
*$
匹配最后一行。

我认为上述解决方案可能不适用于:

#define MACRO_ABC(abc, djhg) \
do { \
  int i; \
  /*
   * multi line comment 
   */ \
  (int)i; \
} while(0);

您使用的是什么正则表达式风格?我需要它使其在Python脚本中工作,使用“re”模块…不受欢迎的回答:-)您能解释一下代码的实际功能吗?