Expressions regulieres [Résolu]

Signaler
Messages postés
34
Date d'inscription
vendredi 22 mars 2002
Statut
Membre
Dernière intervention
2 mai 2006
-
Messages postés
239
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
27 août 2012
-
Salut a tous,

J'ai besoin de valider une saisie contre une expression regulière. Il s'agit simplement du format mois/année avec pour l'année les deux derniers chiffres de l'année.
J'ai ecrit cette expression regulière "\d{1,2}[^0]/\d{1,2}" mais je n'arrive pas exclure des numeros de mois superieurs a 12.
Exemple : 12/00 doit matcher mais pas 13/00 ou encore 19/00

Quelqu'un peut il aider?
Ps: cherche bon tuto pour maitriser expressions regulieres
Merci

6 réponses

Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
Voilà une expression complète qui devrait fonctionner :

<HR>
(0[1-9]|1[012])/\d\d

<HR>
Deux détails à noter : d'abord, par rapport à l'expression que je t'avais donné tout à l'heure, j'ai remplacé 0\d par 0[1-9] pour interdire 00 ; ensuite, note les parenthèses qui encadrent la partie de l'expression correspondant au numéro du mois : elles limitent la portée de l'alternative. Si tu les oublies, l'expression signifie "un 0 suivi d'un chiffre de 1 à 9 OU un 1 suivi d'un chiffre de 0 à 2 suivi d'un slash et de deux chiffres", au lieu de "un 0 suivi d'un chiffre de 1 à 9 OU un 1 suivi de chiffre de 0 à 2, LE TOUT SUIVI d'un slash et de deux chiffres.
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
Bonjour,
pour imposer un nombre compris entre 01 et 12 tu peux procéder ainsi: "0\d|1[012]". Autrement dit, tu autorises soit un 0 suivi d'un nombre de 0 à 9, soit un 1 suivi de 0, 1 ou 2.
Pour maîtriser les expressions régulières, une référence absolue (sans vouloir faire de la pub) : "Maîtrise des expressions régulières", par Jeffrey Friedl, aux éditions O'Reilly.
Messages postés
34
Date d'inscription
vendredi 22 mars 2002
Statut
Membre
Dernière intervention
2 mai 2006

Je comprends ca et merci pour le bouquin, je vais me le procurer. Seulement je n'arrive pas a integrer ton expression dans la partie jour de la mienne. Quand je teste avec expresso, j'obtiens pas mal de match notamment qui font que cela ne resout pas mon probleme. Pourrais tu me donner la chaine complete qui va avec ma problematik? M
Merci de ton aide
Messages postés
34
Date d'inscription
vendredi 22 mars 2002
Statut
Membre
Dernière intervention
2 mai 2006

Je comprends ca et merci pour le bouquin, je vais me le procurer. Seulement je n'arrive pas a integrer ton expression dans la partie jour de la mienne. Quand je teste avec expresso, j'obtiens pas mal de match notamment qui font que cela ne resout pas mon probleme. Pourrais tu me donner la chaine complete qui va avec ma problematik? M
Merci de ton aide
Messages postés
29
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
24 août 2012

bonjour a tout le monde, je cherche a développer un code en C# qui me permet d'utiliser les expressions régulières pour trouver des mots (par exemple ayant la forme PM-ASK-2134) dans un document Word, le code est facile pour des fichiers textes (.txt) mes pour un document Word c'est différent, SVP si qelqu'un a une idée je suis coinsé depuis 2 semaines. merci a l'avance.
voila mon code: (il permet de trouver la chaine "PM-ASK-2134" dans un document word mais je cherche a trouver toutes les ocurences de ce type en utilisant une expression régulière):

object missing = System.Reflection.Missing.Value;
object fileName = @textBox1.Text.ToString();
Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application();
msWord.Visible = false;
Microsoft.Office.Interop.Word.Document nvDoc;
nvDoc = msWord.Documents.Open(ref fileName, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing);

nvDoc.Application.Selection.Find.ClearFormatting();
Regex Tag = new Regex(@"SC-([\w\-.]+)-([\S\-.]+)");
nvDoc.Application.Selection.Find.Text = "PM-ASK-2134";

while (nvDoc.Application.Selection.Find.Execute(
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing))
{
MessageBox.Show(nvDoc.Application.Selection.Find.Text);
}
// else MessageBox.Show("Text not found.");


// Fermer le document
nvDoc.Close(ref missing, ref missing, ref missing);

// Fermeture de word
msWord.Quit(ref missing, ref missing, ref missing);
Messages postés
239
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
27 août 2012
5
Crée un nouveau poste au lieu de déterrer ceux des autres...