Je cherche une expression régulière

Fermé
abdou - Modifié par abdou le 17/10/2013 à 20:43
 Utilisateur anonyme - 18 oct. 2013 à 16:12
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
A voir également:

4 réponses

Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
18 oct. 2013 à 15:41
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
Utilisateur anonyme
18 oct. 2013 à 15:55
@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 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
18 oct. 2013 à 16:09
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
Utilisateur anonyme
18 oct. 2013 à 16:12
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