Je voudrais faire une subsitution sur les patterns redondants dans les
lignes d'un fichier, mais ces patterns peuvent =EAtres repr=E9sent=E9s
avec une fr=E9quence non fixe :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) 24 Jan 2006 07:34:50 -0800, "ctobini" écrivait (wrote):
Je voudrais faire une subsitution sur les patterns redondants dans les lignes d'un fichier, mais ces patterns peuvent êtres représentés avec une fréquence non fixe :
Je voudrais subsituer chaque occurence de 'pattern' contre par exemple 'chemin' dans chaque ligne.
Ok.
En faisant s/pattern/chemin/g il n'y a que le premier 'pattern' qui est substitué pour chaque ligne.
En êtes-vous sûr ? Normalement, le 'g' sert justement à indiquer qu'on veut remplacer *toutes* les occurences...
Sauriez-vous comment faire ?
Montrez-nous du code... L'erreur est ailleurs !
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) 24 Jan 2006 07:34:50 -0800,
"ctobini" <ctemp2@free.fr> écrivait (wrote):
Je voudrais faire une subsitution sur les patterns redondants dans les
lignes d'un fichier, mais ces patterns peuvent êtres représentés
avec une fréquence non fixe :
À (at) 24 Jan 2006 07:34:50 -0800, "ctobini" écrivait (wrote):
Je voudrais faire une subsitution sur les patterns redondants dans les lignes d'un fichier, mais ces patterns peuvent êtres représentés avec une fréquence non fixe :
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Martin
Allo,
J'ai néanmoins trouvé une solution : s/pattern/chemin/ while /pattern/; J'aimerais tout de même comprendre où se situe le problème avec s///g.
Je fais l'hypothèse que ton pattern n'est présent qu'une fois probablement à cause d'une erreur d'inattention du genre d'un ^ en début ou d'un $ en fin de regexp. Après la première application de la substitution, le pattern peut être retrouvé à nouveau.
Allo,
J'ai néanmoins trouvé une solution :
s/pattern/chemin/ while /pattern/;
J'aimerais tout de même comprendre où se situe le problème avec
s///g.
Je fais l'hypothèse que ton pattern n'est présent qu'une fois probablement à
cause d'une erreur d'inattention du genre d'un ^ en début ou d'un $ en fin
de regexp. Après la première application de la substitution, le pattern peut
être retrouvé à nouveau.
J'ai néanmoins trouvé une solution : s/pattern/chemin/ while /pattern/; J'aimerais tout de même comprendre où se situe le problème avec s///g.
Je fais l'hypothèse que ton pattern n'est présent qu'une fois probablement à cause d'une erreur d'inattention du genre d'un ^ en début ou d'un $ en fin de regexp. Après la première application de la substitution, le pattern peut être retrouvé à nouveau.