annuaire-info

Bien plus qu'un annuaire d'annuaires !

Test d’expression régulière

(expression régulière = expression rationnelle = RegEx = RegExp = ExpReg)

Les expressions régulières sont partout dans nos programmes et fichiers de configuration. Les tester est loin d’être évident, surtout s’il faut relancer un programme, attendre un événement aléatoire ou redémarrer un serveur à chaque nouveau test.

Cet outil vous permet de tester une expression régulière simultanément sur 5 chaînes de caractères et d’analyser les résultats, y compris les éléments capturés.

   Cet exemple de test de regex vous donne un premier aperçu des possibilités.

Test de RegEx

   Modèle :       
   Options : recherche insensible à la casse       
   Chaîne 1 :
   Chaîne 2 :
   Chaîne 3 :
   Chaîne 4 :
   Chaîne 5 :

 
Les expressions régulières ne sont pas interprétées exactement de la même façon par tous les systèmes. Nous utilisons les expressions régulières conformes à Perl. Votre système pourrait utiliser un autre style d’expressions régulières. Il peut donc exister occasionnellement des différences entre les résultats de notre test et ceux de votre application.



40 commentaires à propos de “Test d’expression régulière”

  1. Excellent outil, très pratique !

    Ecrit le 17 janvier 2008 à 16h00 par Silk

  2. Vraiment génial !

    Ecrit le 12 février 2008 à 17h46 par Matt

  3. Merci pour ce petit utilitaire. Si je peux proposer des améliorations …?

    1. Le résultat peut être plus riche que vrai ou faux. En réalité, on recherche une liste de match !

    2. Pourquoi ne pas montrer le resultat sur la meme ligne que les chaines 1 à 5 ?

    Ecrit le 4 mars 2008 à 14h43 par anonymous

  4. Merci pour les suggestions, mais je ne comprends pas bien le premier commentaire, car l’outil donne une liste de « captures » (capture = match). Exemple:

    Modèle testé : ^([a-z]+)([0-9]+)
    Chaîne 1: test123
    Résultat : vrai
    Capture 1 : test
    Capture 2 : 123

    Ce sont les parenthèses qui indiquent les parties à capturer.

    Ecrit le 4 mars 2008 à 15h11 par Jean-Luc

  5. Merci pour l’info. :-)

    Ecrit le 4 mars 2008 à 15h38 par anonymous

  6. Extra, trés utile pour le développement. Merci beaucoup.

    Ecrit le 24 avril 2008 à 13h52 par FL

  7. Plusieurs semaines que je cherche un outil comme celui-ci.
    Merci, il gagne à être connu…

    Ecrit le 17 juillet 2008 à 11h34 par Aurelien

  8. Bravo, super pour le dev.

    Merci

    Ecrit le 18 juillet 2008 à 12h19 par Nimzo

  9. sympa, bonne initiative mais assez restrictif…
    il ne propose qu’une option et souvent les modeles proposés sont « invalides » alors qu’ils fonctionnent bien en ligne et sur d’autres simulateurs…

    Ecrit le 23 juillet 2008 à 20h29 par orklah

  10. Merci pour le commentaire, orklah.

    J’aurais probablement dû préciser qu’il fallait échapper les / (slash) en les remplaçant par \/ (anti-slash, suivi d’un slash).

    Ecrit le 23 juillet 2008 à 21h10 par Jean-Luc

  11. Utilitaire assez pratique.

    Puis j’ai trouvé l’addon de fireFox…

    Ecrit le 17 octobre 2008 à 9h30 par azerwhite

  12. FireFox + addon + addon + addon + addon + addon de choses qui n’ont rien à voir avec un navigateur = usine à gaz = navigateur lent

    Ecrit le 22 octobre 2008 à 6h15 par Seb

  13. Je viens de trouver ce test : c’est extra ça va m’éviter de finir mes vieux jours à tester une regexp !!!

    Ecrit le 28 novembre 2008 à 13h02 par Retraite Plus

  14. Merci pour cette page qui est très utile pour le test. :)

    Ecrit le 24 décembre 2008 à 14h31 par Molkobain

  15. Dans le meme genre mais sans devoir valider:
    http://www.regextester.com/

    Ecrit le 16 janvier 2009 à 17h10 par Xavier

  16. norme posix ou perl?

    Ecrit le 20 janvier 2009 à 12h51 par kkronos

  17. Bonjour,

    Cet outil est très appréciable pour vérifier si son expression régulière fonctionne.

    Je me permets de glisser une suggestion dans ce message :
    il est certain qu’actuellement, les modificateurs ‘i’ et ‘g’ sont indiqués. Toutefois, afin d’éliminer certaines erreurs, il vaudrait peut-être mieux de laisser le choix à l’utilisateur d’indiquer ‘i’ ‘m’ et ‘s’ et de les désactiver par défaut.

    Cordialement

    Ecrit le 23 janvier 2009 à 16h04 par yvsppt

  18. kkronos: C’est la norme Perl.

    yvsppt: L’option ‘i’ est disponible. Pour les options multilignes ‘m’ et ‘s’, elles ne sont pas prévues dans l’immédiat.

    Ecrit le 25 janvier 2009 à 17h29 par Jean-Luc

  19. Outil vraiment très pratique pour tester son regexp.
    Merci beaucoup !!

    Ecrit le 28 janvier 2009 à 16h10 par kemeofi

  20. super merci.

    c’est vraiment utile pour la vérification

    Ecrit le 17 février 2009 à 14h18 par jerome

  21. très utile merci, cela évite des prises de tête!

    Ecrit le 25 février 2009 à 12h33 par mabylone

  22. Tout d’abord un grand merci pour cette excellente initiative !

    Si je puis me permettre, je pense qu’ajouter sur cette même page un mémo relatif aux expressions régulières, serait bien utile.

    Ecrit le 18 mars 2009 à 18h47 par David

  23. Pour ceux qui ont besoin : expression regulière pour les urls de sites webs =

    ^(http(s?)\:\/\/)(([-\w]+\.)+(com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(:[\d]{1,5})?(((\/([-\w~!$+|.,=]|%[a-f\d]{2})+)+|\/)+|\?|#)?((\?([-\w~!$+|.,*:]|%[a-f\d{2}])+=([-\w~!$+|.,*:=]|%[a-f\d]{2})*)(&([-\w~!$+|.,*:]|%[a-f\d{2}])+=([-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(#([-\w~!$+|.,*:=]|%[a-f\d]{2})*)?$

    Ecrit le 4 juin 2009 à 13h29 par Tex

  24. Les charactères spéciaux encoder en UTF8 du genre \u0009 ne sont pas pris en compte.

    Ecrit le 12 juin 2009 à 14h23 par Djey

  25. Super outil. Merci

    Ecrit le 19 août 2009 à 16h04 par Alentia

  26. expression régulière pour les adresses mail :

    ^([a-zA-Z0-9_\-\.]*)[a-zA-Z0-9]@([a-zA-Z0-9\-\.]*)[a-zA-Z0-9]\.[a-zA-Z]{2,3}$

    Ecrit le 14 décembre 2009 à 23h44 par PG

  27. @PG: pourquoi pas:

    ^([a-zA-Z0-9_\-\.]*)+[a-zA-Z0-9]@([a-zA-Z0-9\-\.]*)[a-zA-Z0-9]\.[a-zA-Z]{2,4}$

    Il faut aussi prendre en compte les .info (pour ne citer que ce TLD).

    Ecrit le 19 avril 2010 à 21h57 par peinture abstraite

  28. Très bon outil. Merci

    Ecrit le 12 juillet 2010 à 15h06 par Joel

  29. Super outil. En revanche il serait bien de pouvoir tester avec des chaines vides.

    Ecrit le 26 octobre 2010 à 11h59 par Vincent

  30. Pourquoi les résultats ne sont pas les mêmes qu’avec preg_replace de PHP ?

    Ecrit le 10 novembre 2010 à 22h31 par Alban

  31. Perso, je vais sur rubular.com

    Interface sympathique + AJAX (donc pas besoin de valider)…

    Ecrit le 28 février 2012 à 14h55 par Simon MARTINEZ

  32. Merci pour ce dev.

    Juste une remarque:
    Modèle testé ^(\+)?[0-9\(\)\ ]{6}
    chaîne testée +(33) 6 06 06 06 06
    – testée OK et ne devrait pas car + de 6 caractères (éventuellement 7 avec le+) .

    @+

    Ecrit le 25 septembre 2012 à 9h10 par Pierre

  33. Bonjour Pierre,

    Le résultat est pourtant correct. Pour se limiter à 6 caractères (et pas un de plus), il faut terminer le modèle par $.

    Ecrit le 28 septembre 2012 à 21h05 par Jean-Luc

  34. Merci Jean-Luc,
    il ne faut pas ajouter % pour autoriser des caractères supplémentaires?

    Ecrit le 10 octobre 2012 à 13h37 par Pierre

  35. Merci beaucoup pour cet outil SUPER pratique! voila qui devrait éviter a nombre de gens de passer des heures et des heures à tester leur regexp ! :)

    Ecrit le 18 avril 2013 à 23h14 par jhx76

  36. Expression évaluée :

    \*(?:/(?:2[0-3]|[0-1][0-9]|[0-9]))?|(?:2[0-3]|[0-1][0-9]|[0-9])

    Ne fonctionne pas alors qu’elle est fonctionnelle.

    Ecrit le 23 juin 2014 à 9h45 par Condutiarii

  37. Vous avez raison. Ajoutez un \ devant le / et cela fonctionnera (parce que notre script utilise des / comme délimiteurs de l’expression régulière).

    Ecrit le 23 juin 2014 à 10h40 par Jean-Luc

  38. Merci, c’est noté :)

    Ecrit le 1 juillet 2014 à 7h54 par Condutiarii

  39. Bonjour, j ai teste une expression reguliere pour les mots de passe, dans mon cas doit comporter 8 caracteres minimum, avec au moins une lettre, un chiffre et un caractere special et le resultat donne est faux mais je ne vois pas pourquoi, quelqu un saurait il?

    ^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~’!@#$%^&*)(-+=]).{8,}$

    teste avec Perlscript76!

    Ecrit le 27 août 2014 à 8h26 par fp

  40. Ok ca marche, il y avait des espaces dus au copier colle :-)

    Ecrit le 27 août 2014 à 8h54 par fp

Ajout de commentaire