Expresiones regulares

YgNus
25 de Octubre del 2003
Hola

Estoy intentando usar la función ereg_replace() para sustituir un patron por otro. Lo que quiero es sustituir los '[' y ']' de una cadena por '<' y '>'. Para ello el código que intento usar es:

//Sustituye [ por <
$cad2 = ereg_replace("[([a-z])", "<\1", $cad);
echo $cad2;
//Sustituye ] por >
$cad2 = ereg_replace("]", ">", $cad);
echo $cad2;
//Sustituye [: por </
$cad2 = ereg_replace("[(:([a-z]))", "<\\2", $cad);
echo $cad2;

La última funciona bien y eso que es muy parecida a la primera. Tube que poner que las etiquetas se cerrasen con [: por que no conseguía reconocer el patrón [/.

El problema real lo tengo con la primera función. No consigo poner el < delante del campo 1. Si simplemente pongo el campo 1 y no pongo el < funciona correctamente eliminando el corchete. Por qué puede ser esto?? Lo he intentado de mil formas y no lo consigo. Si uso el caracter de escape para el < poniendo: "<\1" funciona pero claro susutituye el corchete por < literalmente. Como puedo solucionar esto??

Gracias!!