2016-11-19 24 views
-1

我試圖讀取一堆代碼文件以提取特定函數中使用的所有參數。我讀的文件到一個字符串的時間,我想我可以使用正則表達式用圖案像將正則表達式的通配符元素插入數組

"functionName\(.*[\),]" 

那裏是功能&超載。第一個參數始終是一個macro'd字符串,我想這些通配符元素添加到一個數組 所以,如果它發現

functionName(ARGUMENT_1) or functionName(ARGUMENT_1, ....) 

ARGUMENT_1將被添加到陣列

感謝

回答

0

只有一個參數的函數將被捕獲:

\w+\((\w+)\) 

這是你將如何實現它在Python。您可以端口這個邏輯C++

import re 

pattern = "\w+\((\w+)\)" 
text = """functionName(ARGUMENT_1) or functionName(ARGUMENT_1, ....) 
functionName(ARGUMENT_2) or functionName(ARGUMENT_2, ....)""" 
a = re.findall(pattern,text) 
print a 

輸出:對Regex101 https://regex101.com/r/cKTn4Q/2

+0

@AlanMoore

['ARGUMENT_1', 'ARGUMENT_2'] 

演示,你是怎麼做到的? – MYGz

+1

你的意思是,我是如何強制Python代碼突出顯示的?看看[這裏](http://stackoverflow.com/editing-help#syntax-highlighting)。 (從編輯框右上角的幫助按鈕。)略顯神祕,但完整記錄。 :D –

+0

@AlanMoore是啊:)我試圖讓字符串看起來像一個字符串,但不能這樣做。所以就這樣吧:P。謝謝你的提示! :) – MYGz