1

そんなことありますか?私はValaAPIを見回してきましたが、後で参照できるように、Regexオブジェクトはグループのキャプチャをサポートしていないようです。現在、この明らかな制限を回避する方法はありますか?次のような特定のパターンの文字列のグループ(ファイルの内容)から文字列を解析しているとします。

パラメータ=値

しかし、構文を緩くして、次のように言うこともできます。

parameter = value
また
パラメータ=値
など...頭に浮かぶ最初のアイデアは、キャプチャグループで正規表現を使用することですが、私が見る限り、現在、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 に答える