Foros del Web » Programando para Internet » PHP »

Manejo De Expresion Regular

Estas en el tema de Manejo De Expresion Regular en el foro de PHP en Foros del Web. hola, quiero crear una expresion regular donde se pueda verificar si la url contiene un archivo, Para ello idee que la URL " TIENE QUE ...
  #1 (permalink)  
Antiguo 21/09/2007, 14:34
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 14 años, 4 meses
Puntos: 3
Manejo De Expresion Regular

hola, quiero crear una expresion regular donde se pueda verificar si la url contiene un archivo, Para ello idee que la URL " TIENE QUE ACABAR CON 4 CARACTERES, El PRIMERO QUE NO SEA NUMERICO NI ALFABETICO (que es el . ) Y LOS TRES SIGUIENTES QUE SEAN ALFABETICOS".

$string = "archivos/carpeta1/carpeta2/carpeta3/carpeta4/1.1.2. DESARROLLO DEL TALENTO HUMANO/archivo.pdf";

$res = ereg ( "", $string);
echo $res;



hice resto de ensayos pero nada me salio bien. como seria la expresion para este caso?????
  #2 (permalink)  
Antiguo 22/09/2007, 09:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 12 años, 2 meses
Puntos: 2
Re: Manejo De Expresion Regular

La expresión regular POSIX tal como la has descrito (un caracter no-alfanumérico, seguido de tres caracteres alfanuméricos, al final de la cadena), sería algo así:

Código PHP:
$res ereg ('[^[:alnum:]][[:alnum:]]{3}$'$cadena); 
Sin embargo, nota que una cadena como "antes_del_fin" coincidiría con la expresión (el caracter '_' es no-alfanumérico).

Si por ejemplo solo deseas aceptar un punto antes de los tres caracteres alfanuméricos, la expresión regular podría ser más bien algo así:

Código PHP:
$res ereg ('\\.[[:alnum:]]{3}$'$cadena); 
Espero que estas expresiones sean fáciles de seguir y entender. Si quieres una explicación un poco más detallada podemos expandirnos un poco más :).
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 06:33.