Ver Mensaje Individual
  #11 (permalink)  
Antiguo 05/11/2007, 09:33
Cyttorak
 
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 19 años, 7 meses
Puntos: 0
Exclamación Re: Expresion regular por la derecha

eso le pasa lo mismo que ya he dicho antes
coge el primer http que aperezca como parametro
pero no el ultimo

si la direcion es http://www.blabla.com/?url1=http://uno.com&url2=http://dos.com o http://www.blabla.com/?url1=http://uno.com?url2=http://dos.com

cogeria http://uno.com en vez de http://dos.com

La opcion correcta es la que dije en mi ultimo post:
usar la expresion X(!?Y) (encontrar x si y solo si no le sigue y)

y para este caso en particular seria:

Código PHP:
https?(:|%3a)(/|%2f)(/|%2f)(?!.*https?(:|%3a)(/|%2f)(/|%2f).*) 
Esto si que cogeria http://dos.com pues este es el ultimo http (el unico que cumple ser "http..." y no estar seguido de nada que contenga otro "http...")

No pongo el "=" porque yo ya trabajo directamente con la query, asi que no corro peligro de coger el http original, pero si eso se podria añadir igualmente a la expresion regular

Nota: ya me doy cuenta que no eso solo me sirve para coger donde empieza el ultimo http y que luego deberia cortar en el & o # segun el caso (porque no se puede haber a las brabas, ya que el "#" o el "&" podria ser parte de la propia url que quiero capturar) por eso no añado en la expresion regular que busque hasta final de cadena o hasta alguno de esos caracteres ;)
__________________
Visita www.GranFuckultad.tk y goza de risa

Última edición por Cyttorak; 05/11/2007 a las 09:40