5

私は文字列を持っています。Linq を使用して正規表現を実行し、文字列を正規表現と一致する小さなサブ文字列に切り詰めたいと考えています。

現時点で私のコードはエラーを出します

'char' には 'Name' の定義が含まれておらず、タイプ 'char' の最初の引数を受け入れる拡張メソッド 'Name' が見つかりませんでした

私のコード:

string variable = result.Name.Select(r => regEx.Match(r.Name).Groups[2].ToString());

Result.Nameカスタム クラスに含まれる文字列です。

私は間違って何をしましたか? 私の構文/理解の何が問題になっていますか?

4

4 に答える 4

20

このようなものをお探しですか?

string[] result = Regex.Matches(input, pattern)
                       .Cast<Match>()
                       .Select(match => match.Groups[2].Value)
                       .ToArray();
于 2012-05-17T14:51:01.153 に答える
2

Select単一の文字列で呼び出しています。Select文字列を一連の文字として扱っているため、rラムダ式の はcharです。

正規表現に渡す文字列が 1 つだけで、1 つの一致のみが必要な場合は、LINQ はまったく必要ありません。電話するだけ

string variable = regEx.Match(result.Name).Groups[2].ToString();

result.Name(サンプルコードに基づいて、単一の文字列であると想定しています。)

于 2012-05-17T14:47:43.820 に答える
0

これはうまくいくはずです...

string result = result.Name.Select(@regEx => Regex.Match(match.Groups[2].ToString(), @regEx));
于 2013-11-22T10:36:12.270 に答える
0

そうじゃないかな

string variable = result.Select(r => regEx.Match(r.Name).Groups[2].ToString());

NameフィールドでSelectを実行すると、charの配列である文字列で実行されます

于 2012-05-17T14:48:09.673 に答える