Foros del Web » Programando para Internet » PHP »

Expresiones regulares

Estas en el tema de Expresiones regulares en el foro de PHP en Foros del Web. Hola Amigos, tengo la siguiente sonsulta: como podria escribir una expresion regular para php que detecte las URL pero no de la forma tradicional que ...
  #1 (permalink)  
Antiguo 08/05/2009, 08:29
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Expresiones regulares

Hola Amigos, tengo la siguiente sonsulta: como podria escribir una expresion regular para php que detecte las URL pero no de la forma tradicional que seria por el inicio http o www, sino por la terminacion, me explico, necesito que detecte las URL tomando encuenta dos factores como en este ejemplo:

xxxxxxxxxx.yyy/xxxxxxxxx.zzz

que tome en cuenta el .yyy/ y despues que tome en cuenta la terminacion .zzz; yo escribi una sentecia solo para la segunda parte que seria encontrar el .zzz que es la siguiente:

"/([^ ]+\.[a-zA-Z]{1,3}[$ ]*)/"

como podria hacer para que la sentencia me detecte la URL por estos 2 paramegros.

please help me!!
  #2 (permalink)  
Antiguo 08/05/2009, 08:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresiones regulares

Código:
/(?:^|\s*|\w+)?
\.[a-z]{1,3}
\/\w+
\.[a-z]{1,3}
$/i
francamente, no es un juego de adivinanzas... lo mejor es que tu estudies mas regexp, la verdad...

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/05/2009, 08:57
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Expresiones regulares

gracias por la ayuda y por el consejo, lo tendre muy en cuenta; podrias audarme con la ultima, tengo el codigo de la siguiente forma:
Código PHP:
$regExp1="/(?:^|\s*|\w+)?
          \.[a-z]{1,3}
          \/\w+
          \.[a-z]{1,3}
          $/i"
;
preg_match_all($regExp1,$text,$b);
        
$count1 count($b[1]); //aqui me da error
        
for ($row1 0$row1 $count1 $row1++) {
            
$dato trim($b[1][$row1]);
            
$text$dato;
            
$string "http"
            if(
strpos($text,$string) === false){
                
$dato1 trim("http://".$dato);
                
$query "INSERT INTO direc_http (direccion, fecha, pag) VALUES ('".$dato1."', NOW(), '".$te."')";
            }else{
                
$dato1 $dato;
                
$query "INSERT INTO direc_http (direccion, fecha, pag) VALUES ('".$dato1."', NOW(), '".$te."')";
            }
            echo 
$dato1."<br>";
            
mysql_query($query);
        } 
tengo un error, pero no se por que es, intente con otras expresiones regulares y con esas no me da error; el error esta asi:
Notice: Undefined offset: 1 in C:\wamp\www\kav\ingresarurl.php on line 72
  #4 (permalink)  
Antiguo 08/05/2009, 10:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresiones regulares

mmm... dice el error: "índice 1 indefinido"

como te dije, debes estudiar regexp.... ya que la expresión que coloque, no captura nada... por ende, no existe ningún índice mas que el cero...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 19:19.