Tengo una duda con las expresiones regulares. Sólo las he usado una o dos veces pese al potencial que tiene y estoy intentando usarlas más pero no consigo que funcione lo siguiente:
Código PHP:
$html = "<html lang=\"es\">
<head>
<title>Texto de prueba :D</title>";
$pattern = "@<html(.*|\s*)</title>@i";
preg_match($pattern, $html, $match);
echo $match[1];
El output creo que debería ser:
Código:
Pero no es así. No me retorna nada y yo creo que se debe al grupo de carácteres admitidos entre los dos elementos. Si pongo (.*\s) me funciona pero sólo con un salto de línea (tened en cuenta que en el documento que intento procesar la estructura hace saltos de línea que se procesan como \s).lang=\"es\"> <head> <title>Texto de prueba :D
Así que mi pregunta es cómo puedo definir bien que quiero que entre los elementos pueda haber cualquiér carácter (.*), y salto de línea 0 o más veces porque con (.*\s*) no me funciona, ni con (.\s*), ni con (.*|\s*)... En fin. Perdon si mi problema es muy sencillo.
Saludos.