2010-08-18 462 views
5

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

他们是否有这样做,或者如果没有,他们是否可以使用任何第三方正则表达式引擎,这些引擎可以实现这种功能。

+2

这将有助于如果你提供的样本模式,样本数据,并要提取的值。 – 2010-08-18 14:50:41

+0

似乎很少有第三方商业质量的RegExp liraries可用于.Net,所以我想我需要围绕它编程。 – 2010-08-19 13:32:09

回答

7

这不是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,但是如果这种方式在那里不起作用,我会感到非常惊讶。

+0

我正在寻找一种方法来实现访问命名组的标准PCRE方法,如C#中的$ 0,$ 1,$ 2,$ 3 – 2010-08-18 15:06:27