Foros del Web » Programando para Internet » PHP »

Sobre Manejo De Expresones Regulares

Estas en el tema de Sobre Manejo De Expresones Regulares en el foro de PHP en Foros del Web. hola me gustaria sabes a modo de ustedes y literalmente que significa esto ^ http://( [^/?]*).*$ $direccion = 'http://www.nombreDominio.com/unarchivo/...'; $dominio = ereg_replace('^ http://( [^/?]*).*$','\\1',$direccion); A ...
  #1 (permalink)  
Antiguo 10/09/2007, 10:01
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 18 años, 9 meses
Puntos: 3
Sobre Manejo De Expresones Regulares

hola me gustaria sabes a modo de ustedes y literalmente que significa esto ^http://([^/?]*).*$


$direccion = 'http://www.nombreDominio.com/unarchivo/...';

$dominio = ereg_replace('^http://([^/?]*).*$','\\1',$direccion);


A mis cuentas seria: Validar los string que inicie con http://, que no contienen con / o ? segidamente de cualquier caracter.


1. creo que esta algo raro lo que escrivi, como lo ven ustedes literalmente?????
2. que quiere decir el * despues de [] es decir "[exprecion]*"

gracias
  #2 (permalink)  
Antiguo 10/09/2007, 12:31
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Sobre Manejo De Expresones Regulares

Veamos (voy a separar http de : para que no lo tome como enlace y se pueda ver mejor)

^http ://

Que la cadena comience con "http://"

^http ://([^/?]*).*$

Luego que le siga cualquier cantidad de caracteres (o ninguno) que no sean ni / ni ?

^http ://([^/?]*).*$

Y que le siga cualquier cantidad de cualquier caracter hasta el final de la cadena.

Sin saber para qué necesita que no haya un ?, la idea de la expresión regular es capturar el dominio de la dirección.

el * es un cuantificador, coincide si la expresión que le precede está cero o más veces. Ejemplo:

a*

coincide con:

(cadena vacía)
a
aaa
aaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaa

Espero que quede claro.


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 17:31.