我必须从大量的 cpp 文件中过滤掉所有定义的宏,不包括守卫,例如:
#if <NAME>
#ifdef <NAME>
#ifndef <NAME>
#if defined(<NAME>)
#if defined <NAME>
!defined(<NAME>)
!defined <NAME>
#else if <NAME>
#elif <NAME>
我必须检索所有的名称,但它们并不都是XXX的形式,由于不同的程序员在项目上工作,有很多定义,所以我在定义一个只能<NAME>
从每个推断的正则表达式时遇到问题刚才描述的情况。
任何建议表示赞赏!
编辑 正如有人指出的那样,我的 NAME(带环绕 < )只是一个占位符,实际上它可以是XXXX, XXXX,_XX_Y_,_XXX ,_XXX_Y,XXYY 其中 X 和 Y 可以是大写字母或数字,没有规律名字!它们是预处理器的指令,我必须将它们过滤掉