[PHP] ereg_replace - besoin d'un coup de main

Salut

j’ai beaucoup de mal avec les regex, pourtant j’essaie :ane:

je cherche à remplacer des parenthèses qui entourent des entiers par d’autres caractères mais différent pour la parenthèse ouvrante et la parenthèse fermante

exemple :
si je trouve : (253)
je voudrais le remplacer par : \n253£

donc je veux remplacer ( par \n
et ) par £
mais seulement si je n’ai que des entiers entre

j’ai essayé entre autre :


$string = ereg_replace('^\(([0-9]+)\)$', '\\n\\1£', $string);

mais non

si quelqu’un a une idée …

Ton masque fonctionnera mieux sans l’ancrage (ie: ^ et $).

Là il ne fonctionnera que si ton nombre est entre parenthèses, et si (xxx) commence et finit la ligne. Je ne sais pas si c’est ce que tu veux, mais le problème doit être là.

(ceci dit, je n’utilise plus ereg_replace)

c’est parfait !
par contre je ne comprend pas pourquoi il ne faut pas utiliser ^ et $

tu utilises quoi à la place de ereg_replace ?
et pourquoi ?

en tout merci bien
j’ai bloqué au moins 3 heures :ane:

preg_replace, parce que c’est plus rapide et y a plus d’options.

^et $ c’est des options pour dire : le masque doit commencer par une nouvelle ligne, en somme :

 (1) 

Ne pouvait pas marcher car il y a un espace avant la parenthèse ouvrante, et après la fermante et qu’il s’attend à ce que la parenthèse ouvrante soit situé juste après un début de ligne, et la fermante avant une fin de ligne (ou de chaîne)

Bref : faut lire la doc sur les Regexp :slight_smile:

la lire est une chose
mais la comprendre … c’est une autre affaire :wink:

merci bien pour ton aide