Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/09/2010, 05:42
Avatar de Kamae
Kamae
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Ayuda con expresión regular

Gracias por la respuesta y el aporte, me ha resuelto alguna duda aunque sigo sin pillarlo... Con tu hilo y con el de la wikipedia intento entender mi expresión regular:

Primer paréntesis, (>|^)
Si hay un cierre de HTML ( > ) o bien empieza la línea

Segundo paréntesis, ([^<]+)
¿CREO que si va entre corchetes en este caso es una negación? Le dice que si NO empieza la línea con apertura de HTML ( < )

Tercer paréntesis, (?=<|$)
Se supone que ?= es "mirar adelante", y a continuacin hay un <|$ lo cuál significa "hasta < o final de palabra o línea".
Por lo tanto no seguirá si empiezan etiquetas HTML o se acaba la palabra o la línea.

Después de los patrones, no sé por qué en mi código hay str_replace dentro del preg_replace entre medio de un \\1 y un \\2 (que según tengo entendido se refiere a los dos primeros paréntesis de mi patrón, aunque el \\3 no lo pone en ningún lado...). Debo suponer que entonces hace el reemplazo cuando la palabra que busco está entre \\1 ( > o inicio de línea ) y el \\2 ( < o final de palabra o línea ).

Código PHP:
Aunque toda mi lectura fuera correcta (lo cual dudo),
sigo sin saber anyadir lo de que no sea "<title>yloquevenga"...
Deberia ponerlo entre los parentesis 1 y 2?
Despues del 3r parentesis?
La instruccion seria algo asi como (?<!<title>.*$)   ?
(
Mirar atras ?<!  , que no haya <titleni a continuacion
mas texto y 
final de linea
Finalmente tiré de un explode("<body") y le pasé el buffer de todo lo que viene después del body, aunque me gustaría haberlo sabido hacer con expresiones regulares.

Última edición por Kamae; 21/09/2010 a las 07:18