Problème pour expression régulière

Résolu
Toto -  
 Toto -
Bonjour,

J'aimerai savoir comment récupérer grâce à une expression régulière comment récupérer le contenu entre deux accolades comme suit : {{ SERVER_WEB }}

Outre la réponse c'est surtout le fait de comprendre la réponse qui m’intéresse car je me noie avec les expressions régulières .. :/

A noter qu'il peut y avoir un espace entre SERVER_WEB comme ne pas y avoir d'espace.

Merci d'avance

2 réponses

  1. Grandasse_ Messages postés 978 Date d'inscription   Statut Membre Dernière intervention   613
     
    Bonjour,

    Je ne suis pas sur de savoir où doivent se situer les espaces, je propose ça : https://lehollandaisvolant.net/tout/tools/regex/!embed=false&flags=&re=%7B%7B%5Cs%3FSERVER_INFO%5Cs%3F%7D%7D
    0
    1. Toto
       
      Bonjour,

      Je n'ai pas du tout compris ta réponse Grandasse81 :/
      0
    2. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      Son lien est mal interprété par le forum, copie/colle ça dans ta barre d'adresse :

      https://lehollandaisvolant.net/tout/tools/regex/!embed=false&flags=&re=%7B%7B%5Cs%3FSERVER_INFO%5Cs%3F%7D%7D
      0
  2. Utilisateur anonyme
     
    Bonjour, il te propose un site ou tu peux tester ta regex.
    Ce qui est bien pratique, mais ne t'aide pas à comprendre.

    Je ne pratique pas le PHP, mais ce tuto me paraît pas mal
    https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres

    Dans ton cas tu cherches:
    • 2 accolades
    • un espace ou rien
    • un texte qui correspond à ton Web_Serveur, dont tu n'as rien dit, alors on dira que c'est n'importe quel caractère répétés un nombre indéterminé de fois
    • un espace ou rien, ce texte sera le groupe à récupérer
    • 2 accolades


    En détail,
    • 2 accolades, l'accolade est un caractère spécial, il faut donc l'échapper, et ensuite préciser qu'on le veut 2 fois (entre accolades!)
      \{{2}
    • l'espace
       ?
    • groupe à récupérer constitué de n'importe quel caractère n fois
      (.*)


    Ce qui donne
    \{{2} ?(.*) ?\}{2}



    Comme tu le vois sur la capture d'un autre site de test(en bas à droite Match 1), le groupe est bien extrait.

    0
    1. Utilisateur anonyme
       
      PS il faut clique sur l'image pour la voir en grand
      0
    2. Toto
       
      Bonjour Whismeril,

      Tout d'abord merci pour toutes tes explications ! J'ai vraiment bien compris :)

      Je suis d'autant plus content que j'avais trouvé quasiment la même regex que toi en cherchant par moi-même seulement moi j'avais mis \s à la place de ? pour l'espace blanc.

      Tu penses que ça fonctionne tout de même ?

      Merci encore !!
      0
    3. Utilisateur anonyme
       
      l'espace blanc n'est pas le ?, le ? c'est pour dire que le caractère précèdent est présent 0 ou 1 fois.
      J'ai mis un "vrai" espace car la plupart des implémentations l'acceptent, mais tu peux aussi mettre un \s
      0
    4. Toto
       
      Ah d'accord !

      Merci :)
      0