1

有这样的事吗?我一直在查看 Vala API,Regex 对象似乎不支持捕获组,以便我以后可以引用它们。目前有没有办法绕过这个明显的限制?假设我正在从一组字符串(文件的内容)中解析一个给定模式的字符串,例如:

参数=值

但我希望语法宽松,这样它也可以说

参数=值
或者
参数=值
等等......首先想到的想法是使用正则表达式和捕获组,但据我所知,现在似乎不支持此功能作为 Vala 的一部分。

我能想出的唯一选择是用匹配空格的正则表达式拆分字符串,这样我最终得到一个可以分析的数组,但是文件可能不只包含“参数 = 值”的格式行。

4

1 回答 1

5

它是这样的。免责声明,这不是我的想法:

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");
}
于 2011-07-22T18:30:36.317 回答