Ser*_*les 1 regex vala capturing-group
有这样的事情吗?我一直在查看 Vala API 并且 Regex 对象似乎不支持捕获组,以便我以后可以引用它们。目前有没有办法绕过这个明显的限制?假设我正在从一组字符串(文件的内容)中解析一个字符串,以获得给定的模式,例如:
参数 = 值
但我希望语法宽松,这样它也可以说
参数=值或者
参数 = 值等等...我想到的第一个想法是使用带有捕获组的正则表达式,但据我所知,目前似乎不支持将此功能作为 Vala 的一部分。
我能想出的唯一替代方法是使用匹配空格的正则表达式拆分字符串,以便我最终得到一个可以分析的数组,但该文件可能不仅包含类似“参数 = 值”的格式行。
它是这样的。免责声明,这是我的头顶:
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");
}
Run Code Online (Sandbox Code Playgroud)