Lo que sigue es una expresión regular que he escrito para que coincida con macros de preprocesador de varias líneas en código C/C++. De ninguna manera soy un gurú de expresiones regulares, por lo que agradecería cualquier consejo sobre cómo puedo mejorarlo.python regex para que coincida con la macro del preprocesador de varias líneas
Aquí es la expresión regular:
\s*#define(.*\\\n)+[\S]+(?!\\)
debe coincidir con todo esto:
#define foo(x) if(x) \
doSomething(x)
Pero sólo un poco de esto (no debe coincidir con la siguiente línea de código:
#define foo(x) if(x) \
doSomething(x)
normalCode();
Y tampoco debería coincidir con las macros de preprocesador de una sola línea
Estoy bastante seguro de que la expresión regular anterior funciona, pero como dije, probablemente hay una mejor manera de hacerlo, y me imagino que hay formas de romperla. ¿Alguien puede sugerir alguno?