• Publicidad

Cómo separo las frases entre barras con expresión regular

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cómo separo las frases entre barras con expresión regular

Notapor BigBear » 2009-09-23 21:14 @926

Hola.

Tengo una duda al querer hacer una expresión regular; lo que quiero hacer es, por ejemplo:

http://localhost/imagenes/gifs/bmp/

Lo que necesito es que extraiga las frases (paths) entre barras a excepción de localhost que vendría a ser el host y los paths que es lo que necesito.

¿Alguien me podría ayudar?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Como separo las frases entre barras con expresion regular

Notapor netsoul » 2009-09-24 01:27 @102

Coloca tu código que estás probando. :)
With Perl
Imagination is more important than knowledge. Albert Einstein.
netsoul
Perlero nuevo
Perlero nuevo
 
Mensajes: 150
Registrado: 2008-05-04 01:11 @091

Re: Como separo las frases entre barras con expresion regular

Notapor explorer » 2009-09-24 03:36 @191

Yo usaría URI::Split. :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo separo las frases entre barras con expresión regular

Notapor BigBear » 2009-09-24 12:33 @564

Gracias.

Con la ayuda del módulo URI::Split tengo el siguiente código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use URI::Split qw( uri_split uri_join );
  2.  
  3. my $str = "http://127.0.0.1/imagenes/bmp";
  4. my ($scheme, $auth, $path, $query, $frag)  = uri_split( $str );
  5. print "Path = $path\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Resultado = /imagenes/bmp
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero me imprime todos los paths de una y lo que yo quiero es verlos guardados y separados. Ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Resultadado   Path = /imagenes
                        /bmp
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Cómo lo haría?
Última edición por explorer el 2009-09-24 12:43 @571, editado 1 vez en total
Razón: Anglicismos
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Cómo separo las frases entre barras con expresión regular

Notapor explorer » 2009-09-24 12:38 @568

Pues... con split()...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @paths = split '/', $path;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Actualización:
File::Spec también tiene la función splitdir(), que, en realidad es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub splitdir {
    return split m|/|, $_[1], -1;  # Preserve trailing fields
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y otra cosa, el decir de usar URI::Split, si miramos el código del módulo, tenemos la siguiente expresión regular:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub uri_split {
     return $_[0] =~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

lo cual justifica su uso, para una operación "aparentemente" sencilla.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo separo las frases entre barras con expresión regular

Notapor BigBear » 2009-09-24 13:04 @586

Gracias problema resuelto. :)
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados