1

C# を使用して、正規表現を使用して、コロンの後に表示されるテキストの値を取得しようとしています。フィールド名は知っていますが、可変位置に次のコロンがあります。値は次の空白で終了します。

したがって:

既知のフィールド名: 値

次に、値をグループに入れたいと思います。

私は多くの同様の質問を見つけましたが、これを解決する方向に実際に私を向けるものはありません。

これはより大きなコードの一部ですが、基本的には次の場所に収まります。

     foreach (var v in fieldsToParse)
                {
                    var match = Regex.Match(line, v.pattern, RegexOptions.IgnorePatternWhitespace);

                    if (match.Success)
                        v.value = match.Groups[v.name].Value;
                }   
4

1 に答える 1

0

探している正規表現は、(?<knownfieldname>[a-zA-Z]+)(\s+):(\s+)(?<value>[a-zA-Z]+)またはのようなものでなければなりませんknownfieldname(\s+):(\s+)(?<value>[a-zA-Z]+)

もちろん、これは KnownFieldName と Value が両方とも英字のみであることを前提としています。数値が入る可能性がある場合は0-9、範囲に追加することもできます。または、空白以外が実際に有効な場合は、\Sワイルドカードを使用できます。

可変数のスペースを組み込むように編集されました。また、以下のコメントに照らして、Derek Slager の素晴らしい Regex テスターこの単純な Regex チート シートの両方をブックマークすることを検討してください。このような状況で大いに役立ちます。

于 2012-11-06T17:15:56.367 に答える