Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 27-05-2014 09:59:30

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

[résolu]ER: comment représenter "pas plus d'un nombre de fois"

Bonjour,

j'ai un petit problème pour créer une ER qui permettrait de représenter une chaîne du genre : 12.255.255.255

J'y arrive en gros en faisant :


"^([0-9]{2}\.)([0-9]{3}\.){2}[0-9]{1}"
 



Le problème c'est que je voudrais savoir comment indiquer "pas plus de trois sections de trois chiffres", parce qu'ainsi, ces autres chaînes sont prises aussi :
12.255.255.255.255
12.255.255.255.255.255
12.255.255.255.255.255.255
etc.

Je ne comprends pas pourquoi, il me semble que les deux dernières sections  ([0-9]{3}\.){2}[0-9]{1} signifient pourtant :
"un nombre de 3 chiffres exactement finissant par un point, cette section répétée deux fois exactement, puis un nombre de trois chiffres, présent une fois exactement".


Je me sers de la commande :


echo "12.255.255.255.255" > essai.er && cat ~/essai.er | grep -E "^([0-9]{2}\.)([0-9]{3}\.){2}[0-9]{1}"
 




12.255.255.255.255
 



Je souhaiterais trouver un moyen pour qu'il ne sorte rien quand il y a plus de trois 255.

Quelqu'un aurait-il une idée pour restreindre la recherche ?

Merci d'avance

Dernière modification par Hypathie (27-05-2014 19:52:12)

Hors ligne

#2 27-05-2014 17:29:47

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [résolu]ER: comment représenter "pas plus d'un nombre de fois"

Salut,
Pour indiquer le début de la chaîne, tu utilises ^, de même, pour en indiquer la fin, tu peux utiliser $.
Exemple :

echo -e "12.255.255.255\n12.255.255.255.255" | grep -E "^([0-9][0-9]?{2}\.){3}[0-9][0-9]?{2}$"


12.255.255.255



NB:

  • « {3} » ne signifie pas « au plus 3 » mais « exactement 3 »

  • « ? » signifie « éventuellement 1 »

  • donc « ?{3} » signifie « éventuellement 1, puis éventuellement 1, puis éventuellement 1 », c'est à dire « au plus 3 »


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 27-05-2014 19:43:18

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]ER: comment représenter "pas plus d'un nombre de fois"

Merci{1,}

smile

Hors ligne

Pied de page des forums