C#Regex:如何从匹配中提取$ 1,$ 2变量

时间:2010-08-18 14:48:51

标签: c# .net c#-3.0 mono

目前.NET使用他们自己的非标准捕获组命名约定,这是一种狗。 我想在C#中启用标准使用$ 1,$ 2捕获组。

他们的任何方式,或者如果不是,他们的任何第三方正则表达式引擎可供使用,它们实现了这种功能。

2 个答案:

答案 0 :(得分:9)

这并不是100%清楚你正在寻找什么,但听起来你想要能够在匹配的正则表达式中获得给定组的值。这绝对可以在C#(和.Net)中实现。

例如。

var regex = new Regex(@"(a+)(\d+)");
var match = regex.Match("a42");
Console.WriteLine(match.Groups[1].Value); // Prints a
Console.WriteLine(match.Groups[2].Value); // Prints 42

虽然我不经常使用Mono,但如果这在那里也不起作用,我会感到非常惊讶。

答案 1 :(得分:4)

根据 C# Regular ExpressionsUsing Replacement Strings with Regex.Replace,您可以使用以下代码:

string s = Regex.Replace("  abra  ", @"^\s*(.*?)\s*$", "$1");