[réglé] Remplacements multiples avec RegExp - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [réglé] Remplacements multiples avec RegExp (/showthread.php?tid=1503) |
[réglé] Remplacements multiples avec RegExp - Roworll - 24-07-2007 J'ai un soucis avec RegExp. Je souhaite remplacer des morceaux de texte placés entre deux balises. Supposons que je souhaite transformer la phrase Code : Bon anniversaire <PhPJeux.net> ! Code : Bon anniversaire <b>PhPJeux.net</b> ! Code : var s='Bon anniversaire <b>PhPJeux.net</b> !'; Maintenant, si je souhaite transformer Code : Bon anniversaire <PhPJeux.net> ! Longue vie à <PhPJeux.net> ! Code : Bon anniversaire <b>PhPJeux.net> ! Longue vie à <PhPJeux.net</b> ! Code : Bon anniversaire <b>PhPJeux.net</b> ! Longue vie à <b>PhPJeux.net</b> ! Existe-t-il un RegExp correspondant à ce que je souhaite faire ? RE: Remplacements multiples avec RegExp - naholyr - 24-07-2007 Les regex sont gourmandes par défaut, c'est-à-dire que le masque essaie systématiquement de capturer la plus longue chaine possible correspondante. Pour passer en mode «non gourmand» (ungreedy) c'est l'option "u" ou le point d'interrogation après le quantifieur. Comme je ne suis pas sûr que JS accepte l'option "u", on va utiliser la deuxième solution, donc tu ajoutes simplement un "?" juste après ton "*" ou ton "+" (le quantifieur). -> /<(.*?)>/ RE: Remplacements multiples avec RegExp - Roworll - 24-07-2007 Effectivement, j'avais eu les infos sur l'option 'u' mais j'avais zappé l'avantage du ? Ca me semble fonctionner correctement. Merci ! |