Je cherche une expression régulière
abdou
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
-
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é. -
@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 -
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)? -
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 (^ $).