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”模块…不受欢迎的回答:-)您能解释一下代码的实际功能吗?