簡體   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