Pregunta C # Regexp: Cómo extraer $ 1, $ 2 variables de la coincidencia


Actualmente .NET utiliza su propia convención de nombres de grupos 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, sus motores de expresiones regulares de terceros disponibles para su uso, que implementan ese tipo de funcionalidad.


5
2017-08-18 14:48


origen


Respuestas:


No está 100% claro de lo que está buscando, pero parece que desea 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 con regularidad, me sorprendería mucho si esto no funcionara allí también.


8
2017-08-18 14:52



De acuerdo a C # Expresiones Regulares, Uso de cadenas de reemplazo con Regex. Reemplazo, puedes usar el siguiente código:

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

4
2017-08-18 15:18