regular only online matches ejemplos c# regex perl

only - ¿Cómo recuperas el texto seleccionado usando Regex en C#?



regex.split c# (5)

Creo que Patrick dio con este: mi única sugerencia es recordar que existen grupos de expresiones regulares con nombres, así que no tienes que usar números de índice de matriz.

Regex.Match(s, @"Index (?<num>/d*)").Groups["num"].Value

Encuentro que la expresión regular es un poco más legible de esta manera también, aunque las opiniones varían ...

¿Cómo recuperas el texto seleccionado usando Regex en C #?

Estoy buscando el código C # que es equivalente a este código Perl:

$indexVal = 0; if($string =~ /Index: (/d*)/){$indexVal = $1;}


Querrá utilizar los grupos coincidentes, por lo que algo así como ...

Regex MagicRegex = new Regex(RegexExpressionString); Match RegexMatch; string CapturedResults; RegexMatch = MagicRegex.Match(SourceDataString); CapturedResults = RegexMatch.Groups[1].Value;


Eso sería

int indexVal = 0; Regex re = new Regex(@"Index: (/d*)"); Match m = re.Match(s); if (m.Success) indexVal = m.Groups[1].Index;

También puedes nombrar tu grupo (aquí también me salté la compilación de la expresión regular)

int indexVal = 0; Match m2 = Regex.Match(s, @"Index: (?<myIndex>/d*)"); if (m2.Success) indexVal = m2.Groups["myIndex"].Index;


int indexVal = 0; Regex re = new Regex(@"Index: (/d*)") Match m = re.Match(s) if(m.Success) indexVal = int.TryParse(m.Groups[1].toString());

Es posible que tenga el número de grupo equivocado, pero debería poder resolverlo desde aquí.


int indexVal = 0; Regex re = new Regex.Match(s, @"(<?=Index: )(/d*)"); if(re.Success) { indexVal = Convert.ToInt32(re.Value); }