2010-08-18 8 views
5

Actualmente .NET usa su propia convención de nomenclatura de grupo de captura no estándar que es un perro. Me gustaría habilitar el uso estándar de grupos de captura $ 1, $ 2 en C#.

Es su forma de hacerlo, o si no, es sus motores de terceros regexp disponibles para su uso, que implementan ese tipo de funcionalidad.

+2

Sería de gran ayuda si lo desea proporcionar un patrón de ejemplo, datos de ejemplo y los valores que desea extraer. –

+0

Parece que hay muy pocas bibliotecas de RegExp comerciales de calidad comercial disponibles para .Net, así que supongo que tendré que programarlas. –

Respuesta

7

No está 100% claro lo que estás buscando, pero parece que quieres la capacidad de obtener el valor para un grupo determinado en una expresión regular coincidente. Esto es definitivamente posible en C# (y .Net en general).

Por ejemplo.

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 

Si bien no uso Mono regularmente, me sorprendería mucho si esto no funcionara allí también.

+0

Estoy buscando una forma de implementar el método PCRE estándar para acceder al grupo nombrado como $ 0, $ 1, $ 2, $ 3 en C# –

Cuestiones relacionadas