目前.NET使用他们自己的非标准捕获组命名约定,这是一种狗。 我想在C#中启用标准使用$ 1,$ 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 Expressions,Using Replacement Strings with Regex.Replace,您可以使用以下代码:
string s = Regex.Replace(" abra ", @"^\s*(.*?)\s*$", "$1");