如何在 C# 正则表达式中正确访问捕获组的值

本文关键字:访问 正则表达式 | 更新日期: 2023-09-27 18:36:22

我有以下代码:

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.我做错了什么?

如何在 C# 正则表达式中正确访问捕获组的值

你得到的是整个Match的值 - 你只需要一个组(组 1),你可以通过 Groups 属性和GroupCollection索引器访问它:

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