Partage
  • Partager sur Facebook
  • Partager sur Twitter

Regex dans un script bash

Sujet résolu
    8 septembre 2019 à 19:05:56

    Bonjour,

    J'ai fais un regex pour voir si la variable testée ne contient que des caractère alpha : 

    if [[ "$test" =~ [^a-zA-Z]+ ]];then
    echo "autre"
    else
    echo "que des alpha"
    fi
    
    

    Cela fonctionne pour 'a', '1' mais pas '8a'. 

    EDIT : Je pense avoir compris, les nombres ne sont pas interprété comme des nombre, j'utilise ${test} et ça fonction. J'ai juste une erreur "opérateur binaire attendu" lorsqu'il y un espace entre deux caractères

    -
    Edité par bbsebb 8 septembre 2019 à 19:24:47

    • Partager sur Facebook
    • Partager sur Twitter

    << On n'apprend bien qu'à force de se tromper. >>

      8 septembre 2019 à 19:28:09

      Pour vérifier tous les caractères, il faut mettre les marqueurs de début (^) et de fin ($): ^[^a-zA-Z]+$

      • Partager sur Facebook
      • Partager sur Twitter
        8 septembre 2019 à 19:30:24

        jo_link_noir a écrit:

        Pour vérifier tous les caractères, il faut mettre les marqueurs de début (^) et de fin ($): ^[^a-zA-Z]+$


        J'avais mis cela au début, mais ce ne marchait pas alors que  [^a-zA-Z]+ fonctionne très bien.
        • Partager sur Facebook
        • Partager sur Twitter

        << On n'apprend bien qu'à force de se tromper. >>

          8 septembre 2019 à 20:45:44

          il est préférable de mettre la regex dans une variable; certains caractères spéciaux pouvant la polluer, et le shell mettra les protections nécessaires au moment de l'exécution.

          PS: les guillemets dans un test amélioré ([[ ]]) sont facultatifs.

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

          Regex dans un script bash

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown