我想在.C文件中查找Structs,我在c#中使用正则表达式
我有这样的文字:
typedef struct IsoSns_UxBuffer_tag
{
float32 f32Val[ISOSNS_UX_BUFFER_SIZE];
uint8 u8WrId;
float32 f32Val[ISOSNS_UX_BUFFER_SIZE];
struct IsoSns_UxBuffer_tag
{
float32 f32Val[ISOSNS_UX_BUFFER_SIZE];
uint8 u8WrId;
boolean bIsFull;
}IsoSns_UxBuffer_t;
}IsoSns_UxBuffer_t;
typedef struct IsoSns_UxBuffer_tag
{
float32 f32Val[ISOSNS_UX_BUFFER_SIZE];
uint8 u8WrId;
boolean bIsFull;
}IsoSns_UxBuffer_t;
我的正则表达式是:
(?<Struct>(struct\s+\n*(?<strName>[a-zA-Z0-9_]*)\s*\n*{[\s\n]*((?R)*|(?<Element>([a-zA-Z0-9_\s\]\[]*\n*;[\s\n]*))*)*[\n\s]*}\s*\n*(?<Alias>[a-zA-Z0-9_\[\]]*)\s*\n*;))
它工作正常,但.net不支持递归参数,如&#34;?R&#34; ..我已经读过我可以通过使用平衡组来解决这个问题。但我无法弄清楚......
是否有更好的方法可以使用正则表达式查找c文件中的嵌套结构?