2010-03-08 6 views
3

Je rencontre des problèmes pour utiliser l'expression régulière pour obtenir la date dans une chaîne. Exemple:GetDate dans une chaîne dans C#

string text = "75000+ Sept.-Oct. 2004"; 
MatchCollection dates = Regex.Matches(text, @"[0-9]{5,}[+][\s](jan|feb|fev|mar|apr|avr|may|mai|jun|jui|jul|jui|aug|aoû|sept|oct|nov|dec)[\.][\-](jan|feb|fev|mar|apr|avr|may|mai|jun|jui|jul|jui|aug|aoû|sept|oct|nov|dec)[\.]\s[0-9]{4}", RegexOptions.IgnoreCase); 

Ce code est correspondant à ma chaîne actuelle, mais je voudrais obtenir dans mon MatchCollection, « septembre 2004 » et « octobre 2004 » afin de l'analyser dans 2 datetime.

Si quelqu'un a une idée, merci beaucoup.

Répondre

0

Vérifiez les longueurs du tableau, etc. Vous devriez avoir l'idée

string text = "75000+ Sept.-Oct. 2004"; 
MatchCollection dates = Regex.Matches(text, @"[0-9]{5,}[+][\s](jan|feb|fev|mar|apr|avr|may|mai|jun|jui|jul|jui|aug|aoû|sept|oct|nov|dec)[\.][\-](jan|feb|fev|mar|apr|avr|may|mai|jun|jui|jul|jui|aug|aoû|sept|oct|nov|dec)[\.]\s([0-9]{4})", RegexOptions.IgnoreCase); 
Console.WriteLine(dates[0].Groups[1] + " " + dates[0].Groups[3]); 
Console.WriteLine(dates[0].Groups[2] + " " + dates[0].Groups[3]); 
+0

Merci beaucoup, je ne savais pas que je peux obtenir chaque groupe de mon expression régulière. – Doncho