Je connais pas ce fameux principe, mais bon. "*" signifie "0 ou plus", "?" signifie "0 ou 1", et "+" signifie "1 ou plus". "[^abc]*" veut dire: "tout sauf a, b ou c, 0 fois ou plus". Autrement dit ça matche n'importe quel caractère. Si donc tu veux éviter ce qui commence par a, b ou c, il faut écrire: "^[^abc].*" Enfin, à priori, et si c'est bien ce que tu demandes. PJ Jeremy Monnet a écrit :
Bonjour,
J'ai un cours d'administration d'unix en ce moment, et j'ai une question concernant les expressions regulieres (que je pourrais poser au formateur, mais je ne suis pas sur d'obtenir une reponse satisfaisante, en plus de ne pas avoir d'avis contradictoire).
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)
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) ?
Merci pour votre aide !
Jeremy _______________________________________________ Shell mailing list Shell@lists.asyd.net http://lists.asyd.net/mailman/listinfo.cgi/shell
-- Sparx Inc. 34 rue du Sentier 75002 Paris Tel. +33 (0) 1 44 34 29 21 Std +33 (0) 1 44 34 29 29 Fax +33 (0) 1 55 73 17 07 http://www.sparx.com