Expressions regulieres

Résolu
cs_kmikaz Messages postés 34 Date d'inscription vendredi 22 mars 2002 Statut Membre Dernière intervention 2 mai 2006 - 19 avril 2006 à 11:32
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 - 8 août 2012 à 09:57
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

dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 3
19 avril 2006 à 16:23
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.
3
dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 3
19 avril 2006 à 12:36
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.
0
cs_kmikaz Messages postés 34 Date d'inscription vendredi 22 mars 2002 Statut Membre Dernière intervention 2 mai 2006
19 avril 2006 à 15:08
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
0
cs_kmikaz Messages postés 34 Date d'inscription vendredi 22 mars 2002 Statut Membre Dernière intervention 2 mai 2006
19 avril 2006 à 15:08
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zakariabamou Messages postés 29 Date d'inscription mercredi 16 décembre 2009 Statut Membre Dernière intervention 24 août 2012
8 août 2012 à 02:05
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);
0
Tupad Messages postés 239 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 27 août 2012 5
8 août 2012 à 09:57
Crée un nouveau poste au lieu de déterrer ceux des autres...
0