Foros del Web » Programando para Internet » PHP »

Sobre Expresiones Regulares

Estas en el tema de Sobre Expresiones Regulares en el foro de PHP en Foros del Web. Hola, hoy me puse a estudiar seriamente las expresiones regulares porque era una tema pendiente desde hace tiempo, y me surgió una duda con el ...
  #1 (permalink)  
Antiguo 20/11/2008, 19:57
Avatar de Sr.Zzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 42
Antigüedad: 16 años, 7 meses
Puntos: 0
Sobre Expresiones Regulares

Hola, hoy me puse a estudiar seriamente las expresiones regulares porque era una tema pendiente desde hace tiempo, y me surgió una duda con el siguiente código en php:
Código PHP:
$cadena '<a href=""><img src="http://google.com" alt="texto alternativo" /></a>' ;
$cadena preg_replace('#alt="(.*?)"#','',$cadena);
echo 
$cadena
El cual quita la etiqueta alt.

Mi pregunta es ¿que función cumple "?" en (.*?) ?
  #2 (permalink)  
Antiguo 20/11/2008, 20:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Sobre Expresiones Regulares

Que es opcional, busca el aporte de pateketrueke sobre las expresiones regulares.

Saludos.
  #3 (permalink)  
Antiguo 20/11/2008, 20:37
Avatar de Sr.Zzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 42
Antigüedad: 16 años, 7 meses
Puntos: 0
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.
  #4 (permalink)  
Antiguo 21/11/2008, 05:41
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Sobre Expresiones Regulares

Cita:
Iniciado por Sr.Zzz Ver Mensaje
(..) Mi pregunta es ¿que función cumple "?" en (.*?) ?
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.
  #5 (permalink)  
Antiguo 21/11/2008, 05:59
Avatar de Sr.Zzz  
Fecha de Ingreso: septiembre-2007
Mensajes: 42
Antigüedad: 16 años, 7 meses
Puntos: 0
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:27.