以下は、C / C++ コードの複数行のプリプロセッサ マクロに一致するように作成した正規表現です。私は決して正規表現の第一人者ではないので、これを改善する方法についてアドバイスをいただければ幸いです。
正規表現は次のとおりです。
\s*#define(.*\\\n)+[\S]+(?!\\)
次のすべてに一致する必要があります。
#define foo(x) if(x) \
doSomething(x)
ただし、これの一部のみです (次のコード行と一致しないでください:
#define foo(x) if(x) \
doSomething(x)
normalCode();
また、単一行のプリプロセッサ マクロと一致するべきではありません。
上記の正規表現が機能することはかなり確信していますが、前述したように、おそらくもっと良い方法があり、それを破る方法があると思います。誰でも提案できますか?