Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/04/2014, à 08:48

jehutyy

Explication d'une expression rationnelle

Bonjour
N'ayant pas trouvé de réponse explicant cette exemple je me tourne vers vous:
Je ne comprend pas du tout cette regex: (.)+\1

Selon moi, elle match pour n'importe quel caratère au moins une fois, néanmoins je ne comprend pas ce \1, que signifie t-il?

J'ai testé  cet opérateur avec la regex (A|B|C)\1 sur la chaine de caractère (AAABBBCCC) et avec un grep -E, elle me renvoie AA, BB, CC...
et malheureusement je n'arrive pas à interpreté ce résultat.

Quelqu'un aurait t-il une explication ?

Bien cordialement
jehutyy

Hors ligne

#2 Le 17/04/2014, à 08:54

pingouinux

Re : Explication d'une expression rationnelle

Bonjour,

Je ne comprend pas du tout cette regex: (.)+\1
..........................................
J'ai testé  cet opérateur avec la regex (A|B|C)\1

Ce sont deux expressions différentes.
Peux-tu faire un copier-coller de la commande que tu as lancée, et du résultat ?

Hors ligne

#3 Le 17/04/2014, à 09:44

jehutyy

Re : Explication d'une expression rationnelle

Oui pardon je me suis mal exprimé, ce que je n'ai pas compris c'est \1, je n'ai pas lancé de commande spécifique, en lisant le man j'ai vu cet opérateur et en cherchant des exemples j'ai trouvé, (.)+\1
et je n'arrive pas à déduire le fonctionnement du "\1".

Hors ligne

#4 Le 17/04/2014, à 10:13

pingouinux

Re : Explication d'une expression rationnelle

Voici un extrait de man grep

Back References and Subexpressions
       The back-reference \n, where n is a single digit, matches the substring
       previously matched  by  the  nth  parenthesized  subexpression  of  the
       regular expression.

Recherche de 2 caractères identiques qui se suivent

$ grep -E -o '(.)\1' <<<"AAAABBBCCCDDEFGH"
AA
AA
BB
CC
DD

Recherche d'un nombre pair de caractères identiques qui se suivent
Recherche de 2 caractères (ou 2 expressions) identiques qui se suivent

$ grep -E -o '(.+)\1' <<<"AAAABBBCCCDDEFGH"
AAAA
BB
CC
DD
$ grep -E -o '(.+)\1' <<<"ABcdABcdAAABBCCCDDEFGH"
ABcdABcd
AA
BB
CC
DD

Là, je pense que c'est : Recherche d'une suite quelconque de caractères, le dernier étant doublé

$ grep -E -o '(.)+\1' <<<"AAAABBBCCCDDEFGH"
AAAABBBCCCDD

Édité : Explication pour le dernier cas
Re-édité : Complément pour le 2ème cas

Dernière modification par pingouinux (Le 17/04/2014, à 11:17)

Hors ligne

#5 Le 17/04/2014, à 11:03

tiramiseb

Re : Explication d'une expression rationnelle

Salut,

Souvent, on utilise cette notation pour rappeler, dans la seconde partie d'un "sed s///", une chaîne qui avait été "marquée" par des parenthèses dans la première partie.
(je sais pas si cette explication est compréhensible...)

Hors ligne

#6 Le 17/04/2014, à 11:38

jehutyy

Re : Explication d'une expression rationnelle

Hum c'est un peu nébuleux en effet, mais avec vos deux définitions je vais essayer d'experimenter pour mieux comprendre, merci beaucoup!

Hors ligne

#7 Le 17/04/2014, à 11:49

tiramiseb

Re : Explication d'une expression rationnelle

Exemple simple pour être moins nébuleux :

$ echo "salut les copains" | sed 's/salut les \(.*\)/les \1, dehors/'
les copains, dehors

Dernière modification par tiramiseb (Le 17/04/2014, à 11:50)

Hors ligne

#8 Le 17/04/2014, à 12:03

moko138

Re : Explication d'une expression rationnelle

HS : @ tiramiseb : Je crois que mon mail s'est perdu ; s'il te plaît, pourrais-tu intervenir là, car je sèche.
Merci !
/HS


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#9 Le 17/04/2014, à 12:06

tiramiseb

Re : Explication d'une expression rationnelle

HS : non moko138, ton mail ne s'est pas perdu. Tu veux une intervention "à la demande" ? C'est payant, c'est mon gagne-pain, tu le sais.
J'aide sur le forum si je veux, quand je veux et quand je pense que je peux apporter quelque chose...

Hors ligne

#10 Le 17/04/2014, à 12:16

moko138

Re : Explication d'une expression rationnelle

Reçu.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne