Expression régulière
Fermé
blux
Messages postés
25976
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
17 avril 2024
-
4 févr. 2013 à 16:17
khalilamk Messages postés 2 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 22 mai 2013 - 22 mai 2013 à 14:42
khalilamk Messages postés 2 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 22 mai 2013 - 22 mai 2013 à 14:42
A voir également:
- Expression régulière
- Expression de recherche - Guide
- Expression encoder - Télécharger - Divers Utilitaires
- T'as du ping expression ✓ - Forum Réseau
- Modèle fiche expression de besoin excel - Forum Word
- Mettre en image expression ✓ - Forum Jeux vidéo
2 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
4 févr. 2013 à 17:01
4 févr. 2013 à 17:01
Bonjour,
Je ne suis pas vraiment expert en expression régulière, je les utilise un peu en Java mais on peut faire des trucs en plus donc je ne sais pas trop ce qui est correct dans le langage que tu utilises... en particulier je ne comprends pas trop ta phrase "mes variables $ ne sont pas les mêmes"
Bref, moi je ferais quelque chose comme ça :
Remarque : je mettrais aussi {1,2} à la place de {2}, au cas où le 0 ait été omis.
Je ne suis pas vraiment expert en expression régulière, je les utilise un peu en Java mais on peut faire des trucs en plus donc je ne sais pas trop ce qui est correct dans le langage que tu utilises... en particulier je ne comprends pas trop ta phrase "mes variables $ ne sont pas les mêmes"
Bref, moi je ferais quelque chose comme ça :
\w+\s(\d{2}\.\d{2}\.\d{2}|NODATE)\s(.+)
Remarque : je mettrais aussi {1,2} à la place de {2}, au cas où le 0 ait été omis.
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié par [Dal] le 4/02/2013 à 17:26
Modifié par [Dal] le 4/02/2013 à 17:26
Salut blux :-)
Si tu fais cela :
Note : j'ai rectifié (\w{4}) pour que cela marche sur l'exemple et j'ai simplifié la fin, car je ne comprenais pas ce que tu en faisais, et j'ai retiré les captures des points, car ils ne me paraissent pas utiles.
Dal
Si tu fais cela :
/(\w{4})\s((\d{2}|NO)\.*(\d{2}|DA)\.*(\d{2}|TE))\s(.*)/dans le cas tu as :
Cas1 Cas2 --------------------------- $1 TITI TOTO $2 NODATE 02.01.13 $3 NO 02 $4 DA 01 $5 TE 13 $6 BOULOT-2 MAISON-1
Note : j'ai rectifié (\w{4}) pour que cela marche sur l'exemple et j'ai simplifié la fin, car je ne comprenais pas ce que tu en faisais, et j'ai retiré les captures des points, car ils ne me paraissent pas utiles.
Dal
blux
Messages postés
25976
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
17 avril 2024
3 286
4 févr. 2013 à 17:40
4 févr. 2013 à 17:40
Sauf que j'ai un peu triché, c'est pas NODATE que je recherche, mais ' expired'.
Je crois que je vais creuser un peu plus ta soluce...
Merci bien à vous deux...
Je crois que je vais creuser un peu plus ta soluce...
Merci bien à vous deux...
khalilamk
Messages postés
2
Date d'inscription
mercredi 21 novembre 2012
Statut
Membre
Dernière intervention
22 mai 2013
22 mai 2013 à 13:06
22 mai 2013 à 13:06
J'ai une question comment controler un utilisateur saisit dans une phrase tjrs la premiére lettre en majuscule moi j'ai fais ce controle sur un mot mais j'ai pas su comment l'appliquer sur tous les mots?
(^[A-Z]([a-z, ,-])*)
Merci de me répondre si vous avez une idée
(^[A-Z]([a-z, ,-])*)
Merci de me répondre si vous avez une idée
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
22 mai 2013 à 13:27
22 mai 2013 à 13:27
pour contrôler si la première lettre d'une ligne (contenant en principe une phrase) saisie par l'utilisateur commence par les lettres A à Z majuscules, il suffit de tester ceci :
Si tu veux vérifier autre chose, il faudrait expliquer plus précisément comment se présente ta source de données, ce que l'utilisateur saisit et ce que tu appelles une "phrase" et potentiellement tenir compte d'un contexte pouvant rendre la regexp très compliquée.
Par souci de clarté, je te suggère d'ouvrir un nouveau fil, ta question étant différente de celle traitée ici.
Dal
^[A-Z]
Si tu veux vérifier autre chose, il faudrait expliquer plus précisément comment se présente ta source de données, ce que l'utilisateur saisit et ce que tu appelles une "phrase" et potentiellement tenir compte d'un contexte pouvant rendre la regexp très compliquée.
Par souci de clarté, je te suggère d'ouvrir un nouveau fil, ta question étant différente de celle traitée ici.
Dal
khalilamk
Messages postés
2
Date d'inscription
mercredi 21 novembre 2012
Statut
Membre
Dernière intervention
22 mai 2013
22 mai 2013 à 14:42
22 mai 2013 à 14:42
Voci le probléme au juste le prénom est en minuscule sans accents avec la première lettre en majuscule
Pour un prénom composé, tous les prénoms sont conservés, avec chaque première lettre en majuscule
j'ai travaillé comme ca (^[A-Z]([a-z, ,-])*) mais ca concerne au juste un seul mot pas une régle générique pour tous les mots...
Merci de me répondre si tu as une idée et merci bien pour votre collaboration
Pour un prénom composé, tous les prénoms sont conservés, avec chaque première lettre en majuscule
j'ai travaillé comme ca (^[A-Z]([a-z, ,-])*) mais ca concerne au juste un seul mot pas une régle générique pour tous les mots...
Merci de me répondre si tu as une idée et merci bien pour votre collaboration
4 févr. 2013 à 17:13
Quand on travaille avec des ER, il y a toute une série de variables implicites qui représentent ce qui a 'matché' dans l'ER.
Elles s'appellent $1, $2, $3... $n.
Ici, dans ma première chaine, le mois peut être récupéré dans $3 et la fin de la chaine dans $9 et suivantes.
Si par contre, la date ne correspond pas (cas de la deuxième chaine), alors la fin de la chaine n'est pas en $9 et suivantes, car c'est 'nodate' qu'on a trouvé en $3 et la fin de la chaine est en $5 et suivants.
Du coup, je ne peux de manière définitive récupérer la fin de la chaine dans les mêmes variables, je suis obligé de travailler avec soit $9 et suivantes, soit $5 et suivantes, ce qui m'oblige à des lignes de code en plus.
Remarque : je mettrais aussi {1,2} à la place de {2}, au cas où le 0 ait été omis.
C'est moi qui l'ai généré, je me porte garant de la présence du 0 ;-)
4 févr. 2013 à 17:22
Si tu te limites à une parenthèse par capture comme je l'ai fait, tu devrais avoir $1 sur ta (no)date, et $2 sur le reste, ce qui devrait donner ce que tu veux (ou plus exactement : ce que j'ai cru comprendre que tu voulais...)
Modifié par blux le 4/02/2013 à 17:40
Et puis aussi, je veux pouvoir manipuler la date pour la remettre en french, la fin de ma chaine car je fais des traitements en fonction de ce que j'y trouve...