【问题标题】:Regex Capturing Groups in ValaVala 中的正则表达式捕获组
【发布时间】:2011-07-22 15:20:32
【问题描述】:

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

参数=值

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

 parameter=value
parameter = value
等...首先想到的是使用带有捕获组的正则表达式,但似乎不支持此功能,因为据我所知,现在是 Vala 的一部分。

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

【问题讨论】:

  • 您尝试过哪些正则表达式/替换字符串?显然,Vala uses the GLib regex libaray,它不仅支持反向引用,还支持许多更高级的东西。

标签: regex vala capturing-group


【解决方案1】:

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

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");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-24
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    相关资源
    最近更新 更多