• Publicidad

Cómo escapo "\" en split

¿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 escapo "\" en split

Notapor MARKO » 2012-08-29 13:42 @612

Saludos, Perl en Español.

Tengo esta dirección:
P:\Públicos\2012\Posdespachos\29 agosto 2012.xls


dentro de la variable $posdespacho.

Me interesa únicamente 29 agosto 2012 por lo cual hice esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @vector = split("\\",$posdespacho);
  2. $vector[-1] =~ s/.xls//;
  3.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


pero al correr el programa
Trailing \ in regex m/\/ at match.pl line 51.


¿Cómo me escapo de la \?

Gracias por adelantado.
MARKO
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2012-01-10 22:34 @982

Publicidad

Re: Cómo escapo "\" en split

Notapor explorer » 2012-08-29 13:53 @620

El primer argumento de split() debe ser una expresión regular (a excepción de algunas excepciones), por lo que si cambias las comillas dobles por las barras diagonales, se arregla:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $posdespacho = q(P:\Públicos\2012\Posdespachos\29 agosto 2012.xls);
  2. @vector      = split(/\\/, $posdespacho);
  3. $vector[-1]  =~ s/.xls//;
  4. say $vector[-1];  # 29 agosto 2012
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Mejor usar una expresión regular que capture exactamente lo que queremos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $posdespacho =  q(P:\Públicos\2012\Posdespachos\29 agosto 2012.xls);
  2. $posdespacho =~ m{([^\\]+)[.]xls$};
  3. say $1;         # 29 agosto 2012
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 27 invitados