Expressions regulieres [Résolu]

Messages postés
34
Date d'inscription
vendredi 22 mars 2002
Dernière intervention
2 mai 2006
- - Dernière réponse : Tupad
Messages postés
239
Date d'inscription
lundi 5 décembre 2005
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Dernière intervention
30 décembre 2007
7
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dgouttegattat
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Dernière intervention
30 décembre 2007
7
0
Merci
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.
Commenter la réponse de dgouttegattat
Messages postés
34
Date d'inscription
vendredi 22 mars 2002
Dernière intervention
2 mai 2006
0
Merci
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
Commenter la réponse de cs_kmikaz
Messages postés
34
Date d'inscription
vendredi 22 mars 2002
Dernière intervention
2 mai 2006
0
Merci
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
Commenter la réponse de cs_kmikaz
Messages postés
30
Date d'inscription
mercredi 16 décembre 2009
Dernière intervention
24 août 2012
0
Merci
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);
Commenter la réponse de zakariabamou
Messages postés
239
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
27 août 2012
6
0
Merci
Crée un nouveau poste au lieu de déterrer ceux des autres...
Commenter la réponse de Tupad

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.