2011-07-22 93 views
0

有沒有這樣的事情?我一直在環視Vala API,Regex對象似乎不支持捕獲組,以便以後可以參考。目前有什麼辦法可以解決這個明顯的限制嗎?說我解析字符串了一組字符串(一個文件的內容),像給定模式的:正則表達式在Vala捕獲組

 
parameter = value 

但我想語法鬆懈,這樣也可以說

 parameter=value
parameter = value
等等...首先想到的想法是使用正則表達式來捕獲組,但是就我看來,現在似乎不支持這個功能作爲Vala的一部分。

我能想出的唯一選擇是用匹配空格的正則表達式分割字符串,以便最終生成一個我可以分析的數組,但是然後該文件可能不僅包含「parameter = value」 - 如格式化線。

+1

你試過什麼樣的正則表達式/替換字符串?顯然,[Vala使用GLib正則表達式libaray](http://www.valadoc.org/references/glib-2.0/0.11.5/GLib.Regex.html),它不僅支持反向引用,而且支持許多更高級的東西。 – Tomalak

回答

4

它是這樣的。免責聲明,這是我的頭頂:

Regex r = /^\s*(?P<parameter>.*)\s*=\s*(?P<value>.*)\s*$/; 
MatchInfo info; 
if(r.match(the_string, 0, out info)) { 
    var parameter = info.fetch_named("parameter"); 
    var value = info.fetch_named("value"); 
}