Bonjour à tous,

Je cherche à parser une chaine avec une regexp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Regex reLastNumber = new Regex(@"CRYST1\s+([\.0-9]+)\s+([\.0-9]+)\s+([\.0-9]+)\s+([\.0-9]+)\s+([\.0-9]+)\s+([\.0-9]+)\s+C(\s+[\.0-9]+)+");
La chaine est soit la première, soit la seconde :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
line = "CRYST1   60.009   61.046   62.671  90.00 201.60  80.00 C 1 2 1       4";
 
line = "CRYST1   60.135   61.902   60.865  90.00  102.41  90.00 C 2           4";
et je veux obtenir le dernier nombre (on peut voir que le nombre de nombre après le 'C' est variable).

ma regexp matche bien la chaine mais si je veux obtenir le dernier nombre par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
numberTmp = double.Parse(reLastNumber.Match(line).Groups[reLastNumber.Match(line).Groups.Count].Value);
çà plante car le dernier nombre est une chaine vide.

Auriez-vous une solution ?

Merci beaucoup par avance.

Laurent.