如何在C#regex中正确访问捕获组的值?

时间:2015-01-06 16:03:00

标签: c# regex

我有以下代码:

using System;
using System.Text.RegularExpressions;

public class Test
{
   public static void Main()
   {
      var r = new Regex(@"_(\d+)$");
      string new_name = "asdf_1";

      new_name = r.Replace(new_name, match =>
      {
         Console.WriteLine(match.Value);
         return match.Value;
         //return (Convert.ToUInt32(match.Value) + 1).ToString();
      });

      //Console.WriteLine(new_name);
   }
}

我希望match.Value1,但打印为_1。我做错了什么?

1 个答案:

答案 0 :(得分:5)

您获得整个Match的价值 - 您只需要一个组(组1),您可以通过Groups propertyGroupCollection indexer < / p>

Console.WriteLine(match.Groups[1]);