Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2010, 07:29
Avatar de Kamae
Kamae
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 10 meses
Puntos: 13
Ayuda con expresión regular

Buenas a todos

Estoy intentando hacer una expresión regular que me modifique cierta palabra en todo un fichero, pero ignorando dicha palabra si está entre < > (eso incluye código PHP y HTML)

Código PHP:
// Esto ignora las etiquetas HTML y PHP
$output preg_replace("/(>|^)([^<]+)(?=<|$)/esx""'\\1' . str_replace('" $buscar "', '<span style=\"background-color:#FF0\">" $buscar "</span>', '\\2')"$buffer); 
El problema es que sí me coge lo que hay entre las etiquetas title y me gustaría ignorarlo también. Es lo único que no consigo. He probado a añadir varias posibilidades y ninguna funciona, me he leído nosecuántos tutoriales de expresiones regulares pero parece ser que no lo acabo de pillar xD

Código PHP:
   // Que no sea </title> y final de línea... No funciona
/([</title>$])(>|^)([^<]+)(?=<|$)/esx

   
// Que esté después del <body>... No funciona
/(<body>w)(>|^)([^<]+)(?=<|$)/esx 
Etc etc, he probado con *, con ?, con \w, con [a-zA-Z]...

Alguien me puede ayudar?
Gracias de antemano!