2008-08-12 9 views

Répondre

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()); 

je pourrais avoir le numéro de groupe mauvais, mais vous devriez être en mesure de le comprendre à partir d'ici.

1

Vous voulez utiliser les groupes appariés, donc quelque chose comme ...

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

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

Je pense que Patrick cloués celui - ma seule suggestion est de se rappeler que les groupes regex nommés existent, aussi, donc vous n'avez avoir pour utiliser les numéros d'index de tableau.

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

Je trouve l'expression rationnelle est un peu plus lisible de cette façon aussi, bien opinions vary ...

1

Ce serait

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

if (m.Success) 
    indexVal = m.Groups[1].Index; 

Vous pouvez également vous nommer groupe (ici je avons également sautée compilation des expressions rationnelles)

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); 
} 
Questions connexes