Regex 多行的正则表达式语法
这是我试图解析的文件的一个片段Regex 多行的正则表达式语法,regex,Regex,这是我试图解析的文件的一个片段 typedef union { struct { unsigned RC1REG :8; }; } RC1REGbits_t; extern volatile RC1REGbits_t RC1REGbits __at(0x119); // bitfield macros #define _RC1REG_RC1REG_POSN 0x0 #d
typedef union {
struct {
unsigned RC1REG :8;
};
} RC1REGbits_t;
extern volatile RC1REGbits_t RC1REGbits __at(0x119);
// bitfield macros
#define _RC1REG_RC1REG_POSN 0x0
#define _RC1REG_RC1REG_POSITION 0x0
#define _RC1REG_RC1REG_SIZE 0x8
#define _RC1REG_RC1REG_LENGTH 0x8
#define _RC1REG_RC1REG_MASK 0xFF
// alias bitfield definitions
typedef union {
struct {
unsigned RC1REG :8;
};
} RCREGbits_t;
extern volatile RCREGbits_t RCREGbits __at(0x119);
// bitfield macros
#define _RCREG_RC1REG_POSN 0x0
#define _RCREG_RC1REG_POSITION 0x0
#define _RCREG_RC1REG_SIZE 0x8
#define _RCREG_RC1REG_LENGTH 0x8
#define _RCREG_RC1REG_MASK 0xFF
typedef union {
struct {
unsigned RC1REG :8;
};
} RCREG1bits_t;
我正在尝试提取此文件中的typedef声明,但仅提取typedef
我以为我用的是typedef\s+union\s+\{\n.++bits\u t;不幸的是,它不太正确。在上面提供的示例中,所有文本都将突出显示,这是不需要的。但是,如果在extern之前有一个换行符,它会工作。但我不能保证总是有一个换行符
所需的输出类似于
typedef union {
struct {
unsigned RC1REG :8;
};
} RC1REGbits_t;
typedef union {
struct {
unsigned RC1REG :8;
};
} RCREGbits_t;
typedef union {
struct {
unsigned RC1REG :8;
};
} RCREG1bits_t;
如何将我的搜索绑定到typedef union…bits_t
如果在python语法中使用re软件包,则会有额外的好处,因为这是我写这篇文章时使用的语言。您可以懒洋洋地重复任何字符,直到遇到位为止: 对于Python语法,类似于
re.findall(r'typedef\s+union\s+{[\s\S]*?bits_t;', input)