Salut les amis,

Je bloque sur un probleme surement pas tres complique, mais je n'arrive pas a m'en sortir.

J'ai une date au format "31st December 2017" au milieu d'un texte. Cette date pourrait tout aussi bien etre "22nd December 2017", ou autre variante avec le suffixe nd, th, rd ou encore st. J'essaie de la detecter par regex, mais je ne trouve rien.

Le probleme se situe apparemment sur la detection "31st". Voici un exemple de code ou j'essaie de detecter le debut de la date :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
var text = "xyz abcd 31st December 2015 efgh ijkl";
 
var pattern2 = "[0|1|2|3][0-9]{1}[th|nd|rd|st]";
var results = Regex.Matches(text, pattern2);
 
foreach (Match result in results)
{
    Console.WriteLine(result.Value);
}
Cela me renvoie comme resultat "31s" au lieu de "31st". Bien sur si la date commence par "22nd" ou "23rd" ou "10th" la problematique est la meme. J'ai essaye avec des parentheses, mais rien n'y fait.

Sauriez-vous comment recuperer ca correctement ?