有这样的事吗?我一直在环顾Vala API,而Regex对象似乎不支持捕获组,以便我以后可以引用它们。目前有没有办法解决这个明显的限制?假设我正在解析给定模式的一组字符串(文件的内容)中的字符串,如:
parameter = value
但是我希望语法松散,以便它也可以说
parameter=value或
parameter = value等......首先想到的是使用带有捕获组的正则表达式但据我所知,目前似乎不支持将此功能作为Vala的一部分。
我能想出的唯一选择是将字符串与一个匹配空格的正则表达式分开,这样我最终得到一个我可以分析的数组,但是这个文件可能不仅仅包含“parameter = value”-like格式化的行。
答案 0 :(得分: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");
}