以下是我編寫的用於匹配C/C++代碼中的多行預處理器宏的正則表達式。我絕不是一個正則表達式大師,所以我歡迎任何關於如何讓這個更好的建議。python正則表達式匹配多行預處理器宏
這裏的正則表達式:
\s*#define(.*\\\n)+[\S]+(?!\\)
應該符合這一切:
#define foo(x) if(x) \
doSomething(x)
但只有一些本(應該的下一行代碼不匹配:
#define foo(x) if(x) \
doSomething(x)
normalCode();
也不應該與單線預處理器宏匹配。
我非常肯定上面的正則表達式的工作原理 - 但正如我所說,可能有更好的方法來做到這一點,我想有辦法打破它。任何人都可以建議嗎?