以下は、C/C++コードのマルチラインプリプロセッサマクロと一致するように記述した正規表現です。私は決して正規表現の専門家ではないので、私はこれをより良くする方法についてアドバイスを歓迎する。マルチラインプリプロセッサマクロと一致するPython正規表現
\s*#define(.*\\\n)+[\S]+(?!\\)
それはこのすべてを一致させる必要があります:ここで
は正規表現だ#define foo(x) if(x) \
doSomething(x)
normalCode();
:
#define foo(x) if(x) \
doSomething(x)
しかし、これだけ(の一部は、コードの次の行と一致してはならない
また、1行のプリプロセッサマクロと一致しないようにしてください。
私はかなり上の正規表現が動作することを確信しています - しかし、私が言ったように、おそらくそれを行うより良い方法があり、それを壊す方法があると想像します。誰もが何かを提案できますか?