Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Wacrenier
Ravach0l écrit:
j'ai un probleme d'expression reguliere avec expr. En fait j'essaye de controler la validite d'une adresse ip et d'une adresse mac dans un script.
expr match 192.168.0.1 "/^(d+.){3}d+$/"
renvoit 0
expr match "00:00:00:00:00:00" "/^([:xdigits:]{2}:){5}[:xdigits:]{2}$/"
renvoit 0
comment faire pour que ca marche?
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes, ne pas utiliser de {} (ce sont les expressions basiques). Utiliser la syntaxe "expr chaine : regexp".
Ravach0l <ravach0l@dynamiteur.org> écrit:
j'ai un probleme d'expression reguliere avec expr. En fait j'essaye de
controler la validite d'une adresse ip et d'une adresse mac dans un script.
expr match 192.168.0.1 "/^(d+.){3}d+$/"
renvoit 0
expr match "00:00:00:00:00:00" "/^([:xdigits:]{2}:){5}[:xdigits:]{2}$/"
renvoit 0
comment faire pour que ca marche?
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes,
ne pas utiliser de {} (ce sont les expressions basiques).
Utiliser la syntaxe "expr chaine : regexp".
j'ai un probleme d'expression reguliere avec expr. En fait j'essaye de controler la validite d'une adresse ip et d'une adresse mac dans un script.
expr match 192.168.0.1 "/^(d+.){3}d+$/"
renvoit 0
expr match "00:00:00:00:00:00" "/^([:xdigits:]{2}:){5}[:xdigits:]{2}$/"
renvoit 0
comment faire pour que ca marche?
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes, ne pas utiliser de {} (ce sont les expressions basiques). Utiliser la syntaxe "expr chaine : regexp".
Ravach0l
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes, ne pas utiliser de {} (ce sont les expressions basiques). Utiliser la syntaxe "expr chaine : regexp".
Si je comprend bien la commande expr, tout comme sed, et grep n'implemente pas la totalite des possibilites que permettent les expressions regulieres. Je commence a comprendre pourquoi aucune de mes expression ne marche.
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes,
ne pas utiliser de {} (ce sont les expressions basiques).
Utiliser la syntaxe "expr chaine : regexp".
Si je comprend bien la commande expr, tout comme sed, et grep n'implemente
pas la totalite des possibilites que permettent les expressions regulieres.
Je commence a comprendre pourquoi aucune de mes expression ne marche.
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes, ne pas utiliser de {} (ce sont les expressions basiques). Utiliser la syntaxe "expr chaine : regexp".
Si je comprend bien la commande expr, tout comme sed, et grep n'implemente pas la totalite des possibilites que permettent les expressions regulieres. Je commence a comprendre pourquoi aucune de mes expression ne marche.
Laurent Wacrenier
Ravach0l écrit:
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes, ne pas utiliser de {} (ce sont les expressions basiques). Utiliser la syntaxe "expr chaine : regexp".
Si je comprend bien la commande expr, tout comme sed, et grep n'implemente pas la totalite des possibilites que permettent les expressions regulieres. Je commence a comprendre pourquoi aucune de mes expression ne marche.
Les possibilités sont les mêmes à peu de choses près, mais c'est la syntaxe basique et non la syntaxe étendue.
Ravach0l <ravach0l@dynamiteur.org> écrit:
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes,
ne pas utiliser de {} (ce sont les expressions basiques).
Utiliser la syntaxe "expr chaine : regexp".
Si je comprend bien la commande expr, tout comme sed, et grep n'implemente
pas la totalite des possibilites que permettent les expressions regulieres.
Je commence a comprendre pourquoi aucune de mes expression ne marche.
Les possibilités sont les mêmes à peu de choses près, mais c'est la
syntaxe basique et non la syntaxe étendue.
Retirer les //, ne pas utiliser d, utiliser ( ) pour les groupes, ne pas utiliser de {} (ce sont les expressions basiques). Utiliser la syntaxe "expr chaine : regexp".
Si je comprend bien la commande expr, tout comme sed, et grep n'implemente pas la totalite des possibilites que permettent les expressions regulieres. Je commence a comprendre pourquoi aucune de mes expression ne marche.
Les possibilités sont les mêmes à peu de choses près, mais c'est la syntaxe basique et non la syntaxe étendue.
ts
"R" == Ravach0l writes:
R> expr match 192.168.0.1 "/^(d+.){3}d+$/"
Vous avez fait trop de perl ...
Pour compléter une autre réponse, pour certains un*x ceci marche
moulon% expr match 192.168.0.1 '([[:digit:]]+.){3}[[:digit:]]+$' 0. moulon%
cf {} et +
--
Guy Decoux
"R" == Ravach0l <ravach0l@dynamiteur.org> writes:
R> expr match 192.168.0.1 "/^(d+.){3}d+$/"
Vous avez fait trop de perl ...
Pour compléter une autre réponse, pour certains un*x ceci marche
moulon% expr match 192.168.0.1 '([[:digit:]]+.){3}[[:digit:]]+$'
0.
moulon%
Pour compléter une autre réponse, pour certains un*x ceci marche
moulon% expr match 192.168.0.1 '([[:digit:]]+.){3}[[:digit:]]+$' 0. moulon%
cf {} et +
--
Guy Decoux
Ravach0l
Pour ceux que ca interesse voila deux fonctions shell pour savoir si une adresse ip ou une adresse mac est valide :
# fonction de validation de l'ip function validip { IP=$1 #PTN='[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*$' PTN='[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*$'
if [[ $(expr $IP : $PTN) -gt 0 ]] ; then return 0 # true else return 1 # false fi }
# validation de l'adresse mac function validmac { MAC=$1
if [[ $(expr $MAC : $PTN) -gt 0 ]] ; then return 0 # true else return 1 # false fi }
Pour ceux que ca interesse voila deux fonctions shell pour savoir si une
adresse ip ou une adresse mac est valide :
# fonction de validation de l'ip
function validip {
IP=$1
#PTN='[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*$'
PTN='[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*$'
if [[ $(expr $IP : $PTN) -gt 0 ]] ; then
return 0 # true
else
return 1 # false
fi
}
# validation de l'adresse mac
function validmac {
MAC=$1
Pour ceux que ca interesse voila deux fonctions shell pour savoir si une adresse ip ou une adresse mac est valide :
# fonction de validation de l'ip function validip { IP=$1 #PTN='[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*$' PTN='[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*$'
if [[ $(expr $IP : $PTN) -gt 0 ]] ; then return 0 # true else return 1 # false fi }
# validation de l'adresse mac function validmac { MAC=$1
if [[ $(expr $MAC : $PTN) -gt 0 ]] ; then return 0 # true else return 1 # false fi }
Laurent Wacrenier
Ravach0l écrit:
Pour ceux que ca interesse voila deux fonctions shell pour savoir si une adresse ip ou une adresse mac est valide :
# fonction de validation de l'ip function validip { IP=$1 #PTN='[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*$' PTN='[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*$'
if [[ $(expr $IP : $PTN) -gt 0 ]] ; then return 0 # true else return 1 # false fi }
ça ne vérifie pas 127.1, 127.0.1 ou 2130706433 (localhost) ni 127.2560 (aka 127.0.10.0) mais ça vérifie 999.999.999.999
Ravach0l <ravach0l@dynamiteur.org> écrit:
Pour ceux que ca interesse voila deux fonctions shell pour savoir si une
adresse ip ou une adresse mac est valide :
# fonction de validation de l'ip
function validip {
IP=$1
#PTN='[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*$'
PTN='[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*$'
if [[ $(expr $IP : $PTN) -gt 0 ]] ; then
return 0 # true
else
return 1 # false
fi
}
ça ne vérifie pas 127.1, 127.0.1 ou 2130706433 (localhost)
ni 127.2560 (aka 127.0.10.0)
mais ça vérifie 999.999.999.999
Pour ceux que ca interesse voila deux fonctions shell pour savoir si une adresse ip ou une adresse mac est valide :
# fonction de validation de l'ip function validip { IP=$1 #PTN='[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*$' PTN='[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*.[0-9]{1,3}*$'
if [[ $(expr $IP : $PTN) -gt 0 ]] ; then return 0 # true else return 1 # false fi }
ça ne vérifie pas 127.1, 127.0.1 ou 2130706433 (localhost) ni 127.2560 (aka 127.0.10.0) mais ça vérifie 999.999.999.999
Nicolas George
"Ravach0l" wrote in message <42e606ec$0$15184$:
expr match 192.168.0.1 "/^(d+.){3}d+$/" ^ ^ ^ ^
Pour compléter les autres réponses, je signalerais volontiers qu'attendre qu'un backslash et un dollar soient passés verbatim dans une chaîne de guillemets doubles est casse-gueule. Utiliser des guillemets simples dans cette situation.
"Ravach0l" wrote in message <42e606ec$0$15184$626a14ce@news.free.fr>:
expr match 192.168.0.1 "/^(d+.){3}d+$/"
^ ^ ^ ^
Pour compléter les autres réponses, je signalerais volontiers qu'attendre
qu'un backslash et un dollar soient passés verbatim dans une chaîne de
guillemets doubles est casse-gueule. Utiliser des guillemets simples dans
cette situation.
Pour compléter les autres réponses, je signalerais volontiers qu'attendre qu'un backslash et un dollar soient passés verbatim dans une chaîne de guillemets doubles est casse-gueule. Utiliser des guillemets simples dans cette situation.