Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2005, 04:02
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
ayuda con expresion regular

Hola, estoy haciendo unas expresiones regulares para sustituir la cadena [#enlace->direccion#] por un link HTML, y la cadena [#destinoenlace#] por un <a name=...></a>, o sea, el destino de un enlace de pagina.

Entonces, con expresiones regulares busco lo que haya entre [# y #] y lo trato como corresponda. Para saber si es un destino y no un origen busco que no tenga "->" entre los [#..#] asi:

$patron = "{\[#([^->]*)#\]}Ui"

Hasta aqui sin problema. El problema es mi procedimiento seria mucho mas eficiente si antes de utilizar el preg_replace hago htmlentities de la cadena, entonces el link se convierte en [#enlace-&gt;direccion#], cambiando el > por &gt; y ahi esta mi problema, no se como se escribe un patron para decir que no exista la cadena exacta -&gt; porque si digo:

$patron = "{\[#([^-&gt;]*)#\]}Ui"

Busca una cadena que no tenga "-" o "&" o "g" o "t" o ";", pero yo quiero que sea la secuencia exacta la que no exista.

Ademas no se si debo escapar (con el \) los caracteres "&" y ";".

¿Alguien sabe que expresion deberia poner? Gracias.