繁体   English   中英

正则表达式:获取CPP函数的单独参数和参数类型(c#)

[英]Regex: Get separate parameters and parameter type of the CPP function (c#)

我对正则表达式了解不多,如何获取变量和变量的类型?

示例源文本:

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的副本:

http://www.antlr.org/

如果您试图解析C / C ++头文件,那么它不只是函数声明。 特别是如果是C ++。

Antlr也非常适合执行您似乎在谈论的部分解析和转换。 除此之外,您还可以免费获得C语法 ,这可能足以满足您的需要(但我不会指望它)。

也获取Terrance Parr的书:

如果您坚持使用正则表达式并假定函数签名不会变得非常复杂,则可以针对所有var_type var对进行循环,如下所示while(s/(.*?) (\\S+),//)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM