Bonjour,
J'aimerais savoir quoi utiliser (test ?) pout tester qu'une chaine de caractere contenu dans une variable soit conforme a un modele que l'on définit avec les expressions régulieres... ?
Merci
++
Bonjour,
J'aimerais savoir quoi utiliser (test ?) pout tester qu'une chaine de caractere contenu dans une variable soit conforme a un modele que l'on définit avec les expressions régulieres... ?
Merci
++
tout simplement sed
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ $(echo ${machaine} | sed 's/modele//') == '' ]] then echo chaine valide fi
ou grep avec l'option -q très pratique car il suffit alors de vérifier le code retour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if echo $machaine | grep -q 'modele' then ... fi
Oui mais grep te dit que le modèle est présent dans la chaîne, pas que la chaîne correspond au modèleEnvoyé par _Mac_
MAJ : quoique...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if echo $machaine | grep -q '^modele$' then ... fi
Bonjour,
Je trouve qu'utiliser grep dans ce cas de figure est plus logique car justement il ne sert qu'a trouver la correspondance avec une expression rationnnelle. sed quand à lui est un éditeur de texte, donc il n'a rien à faire ici
il me semble qu'il est possible de faire cela directement en bash. Sans outil supplémentaire.
http://en.wikipedia.org/w/index.php?...ar_expressions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [[ $mavariable =~ 'maregexp' ]] then ... fi
j'ai pas testé, désolé si c'est une bêtise
Bonjour,
Je vais faire avec grep, ca m'a l'air pas mal.
En fait j'aimerais vérifer une adresse email, j'ai repris un modele que j'utilise en php, j'ai essayé de l'adapter, mais apparement ca ne fonctionne pas bien.
Vous en pensez quoi ?
'^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$'
J'ai essayé plus simplement ceci : '^[_a-z0-9-][_a-z0-9-]*@*'
mais ca ne fonctionne pas non plus...
vous pouvez m'aider svp ?
Merci
++
Envoyé par italiasky
Ta syntaxe est bonne, il ne manque que l'option -E dans le grep
Option "E" pour Extended
$ echo "marie-laure_dubois@yahoo.fr" | grep -E '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$'
marie-laure_dubois@yahoo.fr
Ah oui c'est vrai merci
Donc j'en conclus que les expressions régulieres sont les memes pour tous les langages ?
Parce que j'utilisais ce modele avec php...
Et euh juste un petit truc, en fait la si c'est bon ca m'écris l'adresse, seulement j'aimerais pas l'écrire, juste mettre ok ou pas ok, c'est le echo mais peut-on le remplacer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 read email if echo $email | grep -E "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$" then echo "ok" fi
ah ben je crois avoir trouvé, j'ai rajouté ca : 1> /dev/null
Mais ca m'embete j'arrive pas a placer ca dans une fonction
Je crois que je pense trop aux fonctions comme en C ou PHP
Voila :
et je m'en sers comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function Test_email() { if echo $1 | grep -E "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$" 1> /dev/null then return 0 ??? c'est ici que je sais pas trop quoi mettre, ca fonctionne pas comme ca ! fi }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 read email if Test_email $email then echo "ok c bon" else echo "non" fi
Envoyé par italiasky
Une possiblité :
Obs :
grep -q : option "quiet", pas d'affichage
Statut retour $? : 0 --> OK
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function Test_email() { echo $1 | grep -qE "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$" return $? } read email Test_email $email if [[ $? -eq 0 ]] then echo "ok c bon" else echo "non" fi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager