Je cherche une expression régulière

abdou -  
nagashima Messages postés 4500 Statut Membre -
Bonjour,
je débute avec les expressions régulières. je me suis poser la question: comment je peut filtrer une chaine pour que les les chaines valides soient: abc , xyz, 123, abc123 , xwz123 ou rien
j'ai essayé avec l'expression ci-dessous mais ça n'a pas marcher

^((abc)|(xwz))?(123)?$

cette expression accepte aussi: ab123,yz23,..
comment faire?
et merci

4 réponses

Doctor C Messages postés 630 Date d'inscription   Statut Membre Dernière intervention   400
 
Quand tu dis "cette expression accepte aussi: ab123,yz23,.. ", veux-tu dire que ton expression régulière doit accepter ces chaînes de caractères (ab123, yz23, etc)?

Sinon, si les seules chaînes de caractères que tu peux accepter sont les six mentionnées ci-dessus (abc , xyz, 123, abc123 , xwz123 ou rien), je ne vois pas l'intérêt de faire une expression régulière, juste un if avec quelques OR et tout est terminé.
0
nagashima Messages postés 4500 Statut Membre 254
 
@Doctor C:
je débute avec les expressions régulières
Je suppose donc que c'est pour qu'il comprenne le fonctionnement =)

sinon :
((abc|xwz){0,1}(123){0,1})
devrait te convenir.

naga
0
Doctor C Messages postés 630 Date d'inscription   Statut Membre Dernière intervention   400
 
Je suppose que tu as raison!

Sinon, vos deux expressions devraient fonctionner. Personnellement, je ferais un mélange de vos deux expressions:

(abc|xwz)?(123)?
0
nagashima Messages postés 4500 Statut Membre 254
 
mmh, j'ai été trop permissif, le mien permet de récupérer les correspondance dans un texte. Il faudra rajouter les identifiant de début et fin de chaine (^ $).
0