0

CaptureC#の関数を使用して値をキャプチャしたいときに問題が発生します。私のコードは文字列内の多くのパターンを検索するため、一致コレクションを使用し、一致ごとにCapture関数を使用します。しかし、交換したい場合captureOut.valueは動作しません。

私のコード:

MatchCollection matches = Regex.Matches(string, @"\d*\.*\d+\s")

foreach (Match matchOut in matches)
{
    foreach (Capture captureOut in matchOut.Captures)
    Match match1 = Regex.Match(captureOut.Value, @"\d*\.*\d+");
::::: //}
     output = Regex.Replace(output,captureOut.Value, Function1);
}
// i change the value of pattern based on the output of function 1

私のコードのこの部分は、なぜ機能しないのかわかりcapture out.valueません。

4

1 に答える 1

1

キャプチャプロパティの使用は、正規表現にグループがある場合、つまり正規表現の一部が()で囲まれている場合にのみ意味があります。正規表現にはないため、キャプチャされたグループは1つだけであり、正規表現に一致するのは文字列全体です。

于 2013-01-06T23:58:01.633 に答える