JeuWeb - Crée ton jeu par navigateur

Version complète : [réglé] Remplacements multiples avec RegExp
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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> !
en
Code :
Bon anniversaire <b>PhPJeux.net</b> !
Le code Js correspondant serait:
Code :
var s='Bon anniversaire <b>PhPJeux.net</b> !';
s=s.replace(/<(.*)>/g,'<b>$1</b>');
Dans ce cas, tout marche bien.

Maintenant, si je souhaite transformer
Code :
Bon anniversaire <PhPJeux.net> ! Longue vie à <PhPJeux.net> !
en utilisant le même RegExp, le résultat est
Code :
Bon anniversaire <b>PhPJeux.net> ! Longue vie à <PhPJeux.net</b> !
alors que je veux
Code :
Bon anniversaire <b>PhPJeux.net</b> ! Longue vie à <b>PhPJeux.net</b> !
Le RegExp ne transforme que la première et dernière occurence des < >.

Existe-t-il un RegExp correspondant à ce que je souhaite faire ?
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).

-> /<(.*?)>/
Effectivement, j'avais eu les infos sur l'option 'u' mais j'avais zappé l'avantage du ?
Ca me semble fonctionner correctement.

Merci !