有一個程序文件,其中包含以下代碼片段在文件中的某個點。
...
food($apples$ , $oranges$ , $pears$ , $tomato$){
...
}
...
此函數可能包含任意數量的參數,但它們必須是用逗號分隔的字符串。所有參數字符串都是小寫字母。
我希望能夠使用正則表達式解析出每個參數。例如,在蟒蛇結果列表將如下所示:
["apples", "oranges", "pears", "tomato"]
嘗試性解決方案
使用Python RE模塊,我能打破這個問題分成兩個部分來實現這一點。
查找代碼中的函數並提取參數列表。
plist = re.search(r'food\((.*)\)', programString).group(1)
使用另一個正則表達式拆分列表。
params = re.findall(r'[a-z]+', plist)
問題
反正是有,我可以用一個正則表達式,而不是兩個實現這一目標?
編輯
感謝Tim Pietzcker的答案我能找到一些相關的問題:
- Python regular expressions - how to capture multiple groups from a wildcard expression?
- Which regex flavors support captures (as opposed to capturing groups)?
謝謝你回答所問的問題。 – Nixuz 2010-10-08 07:38:01