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!