如何在 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.Value
是1
,但它正在打印_1
.我做错了什么?
你得到的是整个Match
的值 - 你只需要一个组(组 1),你可以通过 Groups
属性和GroupCollection
索引器访问它:
Console.WriteLine(match.Groups[1]);