【发布时间】:2016-12-28 00:34:39
【问题描述】:
我想要一个正则表达式来匹配 C 结构定义。这是我的目标数据:
typedef struct
{
}dontMatchThis;
typedef struct
{
union //lets have a union as well
{
struct
{
int a
//a comment for fun
int b;
int c;
};
char byte[10];
};
}structA;
我只想匹配 structA 的定义,从 typedef 到 strunctA。
我试过了:
typedef[\s\S]+?structA
但事件虽然我使用的是非贪婪修饰符,但它匹配两种结构。 任何建议
【问题讨论】:
-
我相当肯定 C/C++ 语法不是正则语言,因此正则表达式可能不是解析它的合适工具...
-
如果 OP 正在寻找特定模式(例如,this 特定示例),则正则表达式应该能够找到它。毕竟,如果一个人用这些字符创建一个正则表达式,它正在寻找字符串标识,而正则表达式就可以了。问题是你能概括多少(“模式化”),以及 OP 实际需要什么模式?如果 OP 想要匹配看起来 类似 但包含其他嵌套子结构的结构,则正则表达式无法完成这项工作。