Bonjour,
Je cherche à isoler dans une ligne un motif du style 0000:0000
Où suis-je dans l'erreur quand j'utilise la commande qui suit ?
echo dds[0000]:fhers[080e:0780]dfsgdg |sed 's/^*\[\([0-9a-f][0-9a-f][0-9a-f][0-9a-f]:[0-9a-f][0-9a-f][0-9a-f][0-9a-f]\)]*$/\1/'
Sachant que
echo dds[0000]:fhers[080e:0780]dfsgdg|sed 's/\[\([0-9a-f][0-9a-f][0-9a-f][0-9a-f]:[0-9a-f][0-9a-f][0-9a-f][0-9a-f]\)]//'
efface comme escompté le motif …
# les *
Posté par NeoX . Évalué à 5.
la difference se trouve dans tes *
j'imagine que la premiere ne fait finalement rien,
et c'est normal car l'etoile toute seule ne veut rien dire dans une expression reguliere.
mais combinée avec le . elle veut dire "n'importe quel caractere".
chez moi ca marche comme cela
[^] # Re: les *
Posté par legranblon (site web personnel) . Évalué à 1. Dernière modification le 03 novembre 2012 à 20:30.
Merci beaucoup NeoX, je pouvais chercher encore un moment … |-)
[^] # Re: les *
Posté par nud . Évalué à 4.
Tant qu'à faire autant compresser un petit peu la regex…
# sed et pattern
Posté par zipe31 . Évalué à 1.
Salut,
Ceci devrait faire l'affaire également :
;-)
# et grep !
Posté par gaaaaaAab . Évalué à 3.
en utilisant l'option -o (non portable, je ne sais pas si autre chose que GNU grep supporte), et tant qu'on y est, avec encore une autre regex pour le matching :)
$ echo dds[0000]:fhers[080e:0780]dfsgdg| grep -o "\[[[:xdigit:]]\{4\}:[[:xdigit:]]\{4\}\]"
[080e:0780]
(désolé, c'est pas en syntaxe shell, mais les ]] sont interprétés comme des références à wikipedia, mais pas les séquences d'échappement des caractères HTML …)
[^] # Re: et grep !
Posté par zipe31 . Évalué à 1.
Salut,
[^] # Re: et grep !
Posté par gaaaaaAab . Évalué à 3.
oui, j'ai vu ton commentaire au dessus. C'est pour ça que je prenais la peine de préciser que c'était encore une proposition supplémentaire.
Cela dit, ta regex est certes plus compacte, mais aussi moins précise !
C'était aussi l'occasion de signaler l'existence des classes de caractères que je trouve sous utilisées.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.