Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/12/2008, 08:25
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ereg replace: problema eliminando demasiadas cosas por falta de control

Por defecto los cuantificadores "intentan" coincidir con todo lo que puedan. Esto se conoce como greedy match o comportamiento ambicioso.
Por eso el patrón coincide como lo hace.

Tenés dos soluciones posibles:
1.-
Código PHP:
$texto=ereg_replace ("\[1\]([^\[]*)\[/1\]"" "$texto); 
Esto te vale si sabés que nunca habrá un [ en la cadena que querés eliminar.
2.-
Código PHP:
$texto=preg_replace ("#\[1\](.*?)\[/1\]#"" "$texto); 
El modificador ? junto a un cuantificador indica que ese cuantificador debe coincidir con la menor cadena posible. Pero como no es soportado en las funciones ereg*, hay que usar las funciones de perl (preg*).


Saludos.