Código PHP:
$cadena = '<a href=""><img src="http://google.com" alt="texto alternativo" /></a>' ;
$cadena = preg_replace('#alt="(.*?)"#','',$cadena);
echo $cadena;
Mi pregunta es ¿que función cumple "?" en (.*?) ?
| ||||
Respuesta: Sobre Expresiones Regulares Gracias por responder. Yo estaba leyendo de esta pagina, y aprendi que funcion cumple. Y supongo que en ese patrón hace referencia a que ".*" es opcional y no le veo sentido según mi escasa experiencia con Expresiones Regulares. |
| ||||
Respuesta: Sobre Expresiones Regulares De forma predeterminada, los cuantificadores (*, +) son lo que se denomina "voraces", es decir, intentan consumir tantos caracteres como puedan, siempre que se ajuste al patrón. Para evitar que sean voraces (es decir, para forzar que consuman tan pocos caraceres como sea posible para cada coincidencia), se añade ese ? que ves en la expresión que pones como ejemplo. Si quieres más referencias, puede servirte esta página (en inglés) o buscando por google con "ungreedy regular expressions" (que viene a significar "expresiones regulares no voraces"). Un saludo. |
| ||||
Respuesta: Sobre Expresiones Regulares Gracias Deschamps. Ahora entiendo, gracias a tu explicación. Ahora entiendo porque en el ejemplo si le quitaba "?" se devoraba todo el texto alt asta la ultima comillas dobles que encontraba en la cadena, en cambio con "?", solo hasta la comilla que sigue. Saludos |