Regex:获取CPP函数的单独参数和参数类型(c#)
我不太懂正则表达式,如何得到一个变量和一个变量的类型 示例源文本:Regex:获取CPP函数的单独参数和参数类型(c#),c#,c++,regex,C#,C++,Regex,我不太懂正则表达式,如何得到一个变量和一个变量的类型 示例源文本: func (int arg1, float *arg2, float *arg3) func2 (const char * name, int arg1, int arg2, int arg3, void * mem) 示例正则表达式 (\\(.*?)\\) -所有变量一次完成,但如何分别获取它们 \\((.*?),(.*?),(.*?)\\) int arg1float*arg2float*arg3,但可能有3个以上的
func (int arg1, float *arg2, float *arg3)
func2 (const char * name, int arg1, int arg2, int arg3, void * mem)
示例正则表达式
(\\(.*?)\\)
-所有变量一次完成,但如何分别获取它们
\\((.*?),(.*?),(.*?)\\)
int arg1
float*arg2
float*arg3
,但可能有3个以上的选项。。。我需要分别获取类型和参数。您应该为自己获取一份Antlr的副本:
如果您试图解析C/C++头文件,那么它不仅仅是函数声明。特别是如果是C++,
Antlr对于您所讨论的那种部分解析和转换来说也是一个很好的工具。除此之外,你还可以免费获得一份工作,这可能足以满足你的需要(但我不会指望)
也要买Terrance Parr的书:
void f(void(*g)(int,int))
(一个以函数指针作为参数的函数)。为什么不像你已经在做的那样抓取所有变量,稍后用逗号分割呢?我总是有“float*name”、“int name”、“void*name”等