Ce qui suit est une expression régulière que j'ai écrite pour correspondre à des macros de pré-processeur multi-lignes en code C/C++. Je ne suis en aucun cas un gourou des expressions régulières, donc je serais heureux de recevoir des conseils sur la façon dont je peux améliorer cela.regex python correspondant à une macro de préprocesseur multi-lignes
Voici le regex:
\s*#define(.*\\\n)+[\S]+(?!\\)
Il doit correspondre à tout cela:
#define foo(x) if(x) \
doSomething(x)
Mais seulement une partie de cette (ne doit pas correspondre à la ligne de code suivante:
#define foo(x) if(x) \
doSomething(x)
normalCode();
Et ne doit pas non plus correspondre à des macros de préprocesseur à ligne unique
Je suis assez sûr que l'expression régulière ci-dessus fonctionne - mais comme je l'ai dit, il y a probablement une meilleure façon de le faire, et j'imagine qu'il y a des façons de le casser. Quelqu'un peut-il suggérer?