0
我想解析#ifdef
在H文件Regex
declrations。解析#ifdef在C#與正則表達式
輸入例:
#ifdef D_MAIN /* CMNTS */
#define EXT_D
some code
#else /* CMNTS */
#define EXT_D extern
some code
#endif /* CMNTS */
到目前爲止,我這個表達式:
\#ifdef\s+(\S*)[^\n]*
([^(.*)]*)
\#else\s+(\S*)[^\n]*
([^(.*)]*)
\#endif
我想要得到的定義列表,每個DEF應該採取:DEF名(D_MAIN
)時, #ifdef
聲明中的代碼和#else
stmnt中的代碼。
我試圖使#else
部分爲?
可選,但沒有成功,我該如何解決它?
謝謝。
側注:此方法不會使用嵌套#ifdef語句工作:) – Olivier
備註2:有沒有對的#else和#endif後省略\ n匹配一個原因嗎?此外,你的表達包括「?」 isnt(\ #endif)?工作? – Olivier
你也必須在''中有'#else'聲明,例如。像'(\ #else([(。*)] *))?'。不過,如果你想從中獲取任何有意義的數據,你可能想要使用命名捕獲。 – Luaan