regexp

Jeremy Monnet jmonnet at gmail.com
Wed Oct 26 12:56:08 CEST 2005


J'ai l'explication : il insistait juste sur le fait que * peut valoir
0. Il dit à ce moment-là que la contrainte devient muette ... no
comment.

Jeremy

On 10/25/05, Jeremy Monnet <jmonnet at gmail.com> wrote:
> Merci pour vos reponses ! Je vais pouvoir demander ce qu'il voulait
> dire, car je pense que son exemple n'est pas flagrant. On peut
> toujours compliquer les choses par plaisir, mais la son expression
> matche tout, donc pourquoi ne pas utiliser .* directement ? Je ne sais
> pas ce qu'il veut ... En attendant d'en savoir plus, je reste sur le
> "bug" de regexp (c'est a dire un probleme d'interface fauteuil/clavier
> ;-) )
>
> Jeremy
>
> On 10/25/05, Vincent Lefevre <vincent at vinc17.org> wrote:
> > On 2005-10-24 18:05:43 +0200, Jeremy Monnet wrote:
> > > En bref, dans le poly de cours, il est marque : "
> > > Soit la regexp ^[^abc]*
> > >
> > > Soit un fichier contenant :
> > > ascenseur
> > > chameau
> > > berceau
> > > elephant
> > >
> > > la regexp selectionne toutes les lignes, a cause du principe de rendre
> > > muette une contrainte pour satisfaire la regexp globalement "
> >
> > > J'ai cherche un peu pour trouver que finalement une regexp faisant ce
> > > qu'on lui demande (enfin ce que je crois etre le but de cette regexp :
> > > ne trouver que elephant) serait ^[^abc][a-z]*
> > > Mon impression est donc plutot que l'utilisation de l'etoile est
> > > mauvaise (mal placee)
> >
> > En fait, il y a généralement deux contextes possibles, suivant les
> > applications: 1) soit une regexp doit matcher toute une ligne (ou
> > toute une chaîne), 2) soit elle peut matcher une partie de la ligne
> > (ou chaîne) seulement. En général, on est dans le cas 2, et on
> > utilise ^ et/ou $ pour matcher le début et/ou fin de la ligne.
> > Mais alors, teminer sa regexp par une sous-expression étoilée ne
> > sert à rien (sauf lors d'un remplacement).
> >
> > > La question est donc : quel est ce principe de "rendre muette une
> > > contrainte pour satisfaire une regexp" ? Est-ce justifie dans ce
> > > contexte (ou ce que j'en ai compris) ?
> >
> > Je pense qu'il veut dire que la regexp matche la sous-chaîne vide
> > située au début de chaque ligne. Par conséquent, toutes les lignes
> > sont sélectionnées. Il s'agit généralement d'un bug dans la regexp
> > (sauf en cas de remplacement, e.g. s/^[^abc]*/x/ puisqu'en général,
> > * est glouton, ou bien en cas de colorisation, par exemple avec
> > "grep --color").
> >
> > --
> > Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
> > 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
> > Work: CR INRIA - computer arithmetic / SPACES project at LORIA
> > _______________________________________________
> > Shell mailing list
> > Shell at lists.asyd.net
> > http://lists.asyd.net/mailman/listinfo.cgi/shell
> >
>



More information about the Shell mailing list