Page 1 sur 1
Outil pour les regex
Posté : 08 janv. 2013, 18:33
par @rthur
Bonjour à tous,
Je viens de découvrir un outil très sympa pour visualiser une regex :
http://www.regexper.com
A tester par exemple avec une regex pour vérifier une adresse mail, le résultat gagne tout de suite en clareté :
Code : Tout sélectionner
^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$
Et sinon toujours pour les Regex, n'oublions pas le testeur de regex de
Ripat :
http://www.lumadis.be/regex/test_regex.php?lang=fr
Et son excellent tutoriel sur le sujet :
http://www.lumadis.be/regex/tuto_pcre.php
Re: Outil pour les regex
Posté : 08 janv. 2013, 20:06
par Genova
Sympa !
Re: Outil pour les regex
Posté : 09 janv. 2013, 06:08
par AB
Oui pas mal. Et puis j'avais oublié l'excellent tuto de
Ripat.
Merci pour le rappel

Re: Outil pour les regex
Posté : 10 janv. 2013, 21:00
par Perine
Cette expression régulière de validation d'une adresse est fausse et ne correspond pas à la norme.
Code : Tout sélectionner
/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD
C'est d'ailleurs celle utilisée dans la fonction de filtrage de PHP

Re: Outil pour les regex
Posté : 11 janv. 2013, 09:46
par xTG
Il manque des parenthèses dans ton truc (j'irai pas voir o`u par contre xD). Tu es sûre de l'avoir recopiée correctement ?
Car si c'est celle utilisée par PHP je ne comprends pas trop pourquoi preg_match n'est pas capable de l'analyser.

Re: Outil pour les regex
Posté : 11 janv. 2013, 12:51
par Perine
Chez moi, ça marche.
Je suis sûre que c'est correct parce que ça sort directement du Code C de PHP.
Re: Outil pour les regex
Posté : 11 janv. 2013, 14:23
par xTG
Bizarre alors.
preg_match_all() [function.preg-match-all]: Erreur de compilation: parenthèse non pairée en 837
Il doit y avoir des différences entre l'implémentation des expressions régulières en C et en PHP.
Re: Outil pour les regex
Posté : 11 janv. 2013, 14:42
par Perine
Ça fonctionne dans du code PHP chez moi sur toutes mes versions de PHP. D'ailleurs normallement PCRE ne retourne pas de message d'erreur en français, c'est que tu dois avoir une très, très vieille version de PCRE.
L'implémentation est identique.
Enfin, de toute façon, l'utilisation d'une expression régulière pour vérifier les adresses mail est inutile avec les filtres.
Re: Outil pour les regex
Posté : 11 janv. 2013, 15:11
par xTG
Ce message provient du testeur d'expression régulière de Ripat.
Il doit faire tourner son site sur une très vieille version de PHP dans ce cas.
M'enfin par contre je ne suis pas d'accord que les filtres remplacent tout.
Car la norme autorise les adresses locales, et donc ton client peut rentrer sans souci comme addresse email :
@localhost
Et le filtre accpte.

Re: Outil pour les regex
Posté : 11 janv. 2013, 15:14
par Perine
Ben oui, il s'agit d'une adresse mail valide. Tout comme cela accepte aussi des adresses envoyées à des IP comme hôte et non pas comme 99% des regexp qu'on trouve qui n'acceptent pas ça.
Re: Outil pour les regex
Posté : 11 janv. 2013, 15:26
par xTG
On est d'accord sur ce point, c'est une adresse email valide, mais non voulue.

Re: Outil pour les regex
Posté : 11 janv. 2013, 15:29
par Perine
Désolée, mais je ne suis pas d'accord avec le fait qu'une adresse valide soit non voulue. Que l'e-mail n'arrivera pas n'est pas un problème parce qu'il y a suffisamment d'adresses e-mail populairement valides qui n'existent pas.
Re: Outil pour les regex
Posté : 11 janv. 2013, 16:15
par xTG
Alors là je dois dire que j'ai éclaté de rire et que je ne sais pas quoi répondre tellement c'est criant de vérité.
