Je chercher =E0 faire une regexp qui permettrait de :
- changer toutes les occurences d'un terme (monsite), sauf lorsque
celui-ci fait parti d'un lien en .com (www.monsite.com)
Au d=E9but, j'ai pens=E9 =E0 /monsite/ mais cela change toutes les
occurences.
J'ai essay=E9 /monsite[^.]/ mais cela ne marche plus pour monsite.net
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
Thomas vO
à (at) Mon, 15 Dec 2008 02:24:21 -0800 (PST), "" nous disait (told us):
Bonjour à tous !
Je chercher à faire une regexp qui permettrait de : - changer toutes les occurences d'un terme (monsite), sauf lorsque celui-ci fait parti d'un lien en .com (www.monsite.com)
-- Thomas vO - <http://perso.enstimac.fr/~vanouden/>
à (at) Mon, 15 Dec 2008 02:24:21 -0800 (PST),
"pierre@tiiptop.com" <pierre@tiiptop.com> nous disait (told us):
Bonjour à tous !
Je chercher à faire une regexp qui permettrait de :
- changer toutes les occurences d'un terme (monsite), sauf lorsque
celui-ci fait parti d'un lien en .com (www.monsite.com)
à (at) Mon, 15 Dec 2008 02:24:21 -0800 (PST), "" nous disait (told us):
Bonjour à tous !
Je chercher à faire une regexp qui permettrait de : - changer toutes les occurences d'un terme (monsite), sauf lorsque celui-ci fait parti d'un lien en .com (www.monsite.com)
-- Thomas vO - <http://perso.enstimac.fr/~vanouden/>
Pierre Valade
On 15 déc, 11:33, Thomas vO <vanouden+ wrote:
À (at) Mon, 15 Dec 2008 02:24:21 -0800 (PST), "" nous disait (told us):
> Bonjour à tous !
> Je chercher à faire une regexp qui permettrait de : > - changer toutes les occurences d'un terme (monsite), sauf lorsque > celui-ci fait parti d'un lien en .com (www.monsite.com)
> Au début, j'ai pensé à /monsite/ mais cela change toutes les > occurences. > J'ai essayé /monsite[^.]/ mais cela ne marche plus pour monsite.net
> Je vous remercie par avance pour votre aide !
(où $str contient ce que vous voulez modifier)
if ($str =~ m/monsite/ and $str !~ m/monsite.com/) { $str =~ s/monsite/monnouveausite/g;
}
normalement, ça devrait faire l'affaire... (sauf s'il y a plusieurs occurences de monsite dont une avec monsite.com sur une ligne si vous procédez par ligne)
-- Thomas vO - <http://perso.enstimac.fr/~vanouden/>
Merci Thomas. Mais ce n'est pas possible de le faire plus simplement avec une seule REGEX ? Cela revient à dire : Comment matcher la chaîne /monsite/ mais jamais /monsite.com/ ?
Ce n'est pas possible ?
On 15 déc, 11:33, Thomas vO <vanouden+n...@rf.esuoluot-vinu.invalid>
wrote:
À (at) Mon, 15 Dec 2008 02:24:21 -0800 (PST),
"pie...@tiiptop.com" <pie...@tiiptop.com> nous disait (told us):
> Bonjour à tous !
> Je chercher à faire une regexp qui permettrait de :
> - changer toutes les occurences d'un terme (monsite), sauf lorsque
> celui-ci fait parti d'un lien en .com (www.monsite.com)
> Au début, j'ai pensé à /monsite/ mais cela change toutes les
> occurences.
> J'ai essayé /monsite[^.]/ mais cela ne marche plus pour monsite.net
> Je vous remercie par avance pour votre aide !
(où $str contient ce que vous voulez modifier)
if ($str =~ m/monsite/ and $str !~ m/monsite.com/) {
$str =~ s/monsite/monnouveausite/g;
}
normalement, ça devrait faire l'affaire... (sauf s'il y a plusieurs
occurences de monsite dont une avec monsite.com sur une ligne si vous
procédez par ligne)
--
Thomas vO - <http://perso.enstimac.fr/~vanouden/>
Merci Thomas. Mais ce n'est pas possible de le faire plus simplement
avec une seule REGEX ?
Cela revient à dire :
Comment matcher la chaîne /monsite/ mais jamais /monsite.com/ ?
À (at) Mon, 15 Dec 2008 02:24:21 -0800 (PST), "" nous disait (told us):
> Bonjour à tous !
> Je chercher à faire une regexp qui permettrait de : > - changer toutes les occurences d'un terme (monsite), sauf lorsque > celui-ci fait parti d'un lien en .com (www.monsite.com)
> Au début, j'ai pensé à /monsite/ mais cela change toutes les > occurences. > J'ai essayé /monsite[^.]/ mais cela ne marche plus pour monsite.net
> Je vous remercie par avance pour votre aide !
(où $str contient ce que vous voulez modifier)
if ($str =~ m/monsite/ and $str !~ m/monsite.com/) { $str =~ s/monsite/monnouveausite/g;
}
normalement, ça devrait faire l'affaire... (sauf s'il y a plusieurs occurences de monsite dont une avec monsite.com sur une ligne si vous procédez par ligne)
-- Thomas vO - <http://perso.enstimac.fr/~vanouden/>
Merci Thomas. Mais ce n'est pas possible de le faire plus simplement avec une seule REGEX ? Cela revient à dire : Comment matcher la chaîne /monsite/ mais jamais /monsite.com/ ?
Ce n'est pas possible ?
Damien Wyart
* Pierre Valade in fr.comp.lang.perl:
Mais ce n'est pas possible de le faire plus simplement avec une seule REGEX ? Cela revient à dire : Comment matcher la chaîne /monsite/ mais jamais /monsite.com/ ?
Regarder du côté de la syntaxe (?!pattern) dans perlre (http://perldoc.perl.org/perlre.html ou http://perl.enstimac.fr/DocFr/perlre.html pour une version en Français un peu plus ancienne).
-- DW
* Pierre Valade <pierre.valade@gmail.com> in fr.comp.lang.perl:
Mais ce n'est pas possible de le faire plus simplement avec une seule
REGEX ? Cela revient à dire : Comment matcher la chaîne /monsite/ mais
jamais /monsite.com/ ?
Regarder du côté de la syntaxe (?!pattern) dans perlre
(http://perldoc.perl.org/perlre.html ou
http://perl.enstimac.fr/DocFr/perlre.html pour une version en Français
un peu plus ancienne).
Mais ce n'est pas possible de le faire plus simplement avec une seule REGEX ? Cela revient à dire : Comment matcher la chaîne /monsite/ mais jamais /monsite.com/ ?
Regarder du côté de la syntaxe (?!pattern) dans perlre (http://perldoc.perl.org/perlre.html ou http://perl.enstimac.fr/DocFr/perlre.html pour une version en Français un peu plus ancienne).
-- DW
mpg
Le (on) lundi 15 décembre 2008 11:24, a écrit (wrote) :
Je chercher à faire une regexp qui permettrait de : - changer toutes les occurences d'un terme (monsite), sauf lorsque celui-ci fait parti d'un lien en .com (www.monsite.com)
Au début, j'ai pensé à /monsite/ mais cela change toutes les occurences. J'ai essayé /monsite[^.]/ mais cela ne marche plus pour monsite.net
Est-ce que ce n'est pas justement un cas d'école d'utilisation d'une assertion « lookahead » ?
s/monsite(?!.com)/autresite/g
semble faire l'affaire chez moi.
Manuel.
Le (on) lundi 15 décembre 2008 11:24, pierre@tiiptop.com a écrit (wrote) :
Je chercher à faire une regexp qui permettrait de :
- changer toutes les occurences d'un terme (monsite), sauf lorsque
celui-ci fait parti d'un lien en .com (www.monsite.com)
Au début, j'ai pensé à /monsite/ mais cela change toutes les
occurences.
J'ai essayé /monsite[^.]/ mais cela ne marche plus pour monsite.net
Est-ce que ce n'est pas justement un cas d'école d'utilisation d'une
assertion « lookahead » ?
Le (on) lundi 15 décembre 2008 11:24, a écrit (wrote) :
Je chercher à faire une regexp qui permettrait de : - changer toutes les occurences d'un terme (monsite), sauf lorsque celui-ci fait parti d'un lien en .com (www.monsite.com)
Au début, j'ai pensé à /monsite/ mais cela change toutes les occurences. J'ai essayé /monsite[^.]/ mais cela ne marche plus pour monsite.net
Est-ce que ce n'est pas justement un cas d'école d'utilisation d'une assertion « lookahead » ?
s/monsite(?!.com)/autresite/g
semble faire l'affaire chez moi.
Manuel.
mpg
Le (on) lundi 15 décembre 2008 13:18, mpg a écrit (wrote) :
s/monsite(?!.com)/autresite/g
Gnarf, grillé par Damien.
M.
Le (on) lundi 15 décembre 2008 13:18, mpg a écrit (wrote) :