Was folgt, ist ein regulärer Ausdruck, den ich geschrieben habe, um mehrzeilige Präprozessor-Makros in C/C++ - Code zu entsprechen. Ich bin auf keinen Fall ein Guru für regelmäßige Ausdrücke, also würde ich jeden Ratschlag begrüßen, wie ich das besser machen kann.Python-Regex, um mehrzeiligen Präprozessor-Makro
Hier ist die regex:
\s*#define(.*\\\n)+[\S]+(?!\\)
Es sollte dies alles passen:
#define foo(x) if(x) \
doSomething(x)
Aber nur dieser Teil (sollte die nächste Zeile des Codes nicht überein:
#define foo(x) if(x) \
doSomething(x)
normalCode();
Und sollte auch nicht einzeiligen Präprozessor-Makros übereinstimmen.
Ich bin mir ziemlich sicher, dass die Regex oben funktioniert - aber wie gesagt, gibt es wahrscheinlich eine bessere Möglichkeit, es zu tun, und ich stelle mir vor, dass es Möglichkeiten gibt, es zu brechen. Kann mir jemand etwas vorschlagen?