0

一致した入力文字列から対応する値を簡単に抽出できるように、正規表現で変数を定義したいと思います。

たとえば、次のようなパターンがあります。"\w*\s+\d+"

そして、次のような入力文字列:"aaa 113"

"\d+"一致する文字列を受け取ったら、 C#を使用してどちらが数値であるかを示すパターンの部分に対応する値を簡単に抽出できるようにしたいと思います。

式をデータベーステーブルに格納していて、一致した文字列から変数を抽出し、それらの値を動的に取得されたクエリまたはストアドプロシージャに渡したいことを言及する必要があります。

一致する文字列に変数とその値が出現する場所がないため、プロシージャを完全に文脈自由にしたいです。

4

2 に答える 2

1

それがマッチグループの目的です。

一致グループを使用すると、正規表現の括弧で囲まれた部分式に一致する部分文字列を簡単に抽出できます。パターンは次のようになります(文字列全体に一致させることが目的の場合は、アンカー"\w*\s+(\d+)"を追加することをお勧めします)。^$

サブストリングがある場合でも、それが必要な場合は数値に変換する必要があります(使用int.Parseするなど)。

于 2013-01-19T13:41:24.563 に答える
1

パターン内の順序に依存せずに、名前の一致グループを使用できます。

Match match = Regex.Match("aaa 113", @"(?<word>\w*)(?<space>\s+)(?<num>\d+)");
string words = match.Groups["word"].Value;              //"aaa"
string spaces = match.Groups["space"].Value;            //" "
string nums = match.Groups["num"].Value;                //"113"
于 2013-01-19T14:01:07.690 に答える