2008-08-12 12 views

Respuesta

7
int indexVal = 0; 
Regex re = new Regex(@"Index: (\d*)") 
Match m = re.Match(s) 

if(m.Success) 
    indexVal = int.TryParse(m.Groups[1].toString()); 

que pueda tener el número del grupo equivocado, pero usted debería ser capaz de entenderlo desde aquí.

1

Usted querrá utilizar los grupos emparejados, así que algo como ...

Regex MagicRegex = new Regex(RegexExpressionString); 
Match RegexMatch; 
string CapturedResults; 

RegexMatch = MagicRegex.Match(SourceDataString); 
CapturedResults = RegexMatch.Groups[1].Value; 
7

Creo Patrick clavado éste - mi única sugerencia es recordar que existen grupos de expresiones regulares con nombre, también, por lo usted no tiene tiene para usar números de índice de matriz.

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

encuentro la expresión regular es un poco más fácil de leer de esta manera también, aunque opinions vary ...

1

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 puede nombrar que el grupo (en este caso yo' también he saltado 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; 
0
int indexVal = 0; 
Regex re = new Regex.Match(s, @"(<?=Index:)(\d*)"); 

if(re.Success) 
{ 
    indexVal = Convert.ToInt32(re.Value); 
} 
Cuestiones relacionadas