• Publicidad

Extraer de cadena de caracteres

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

Re: Extraer de cadena de caracteres

Notapor aindergm » 2012-06-27 09:36 @442

OK.

¿Y cómo podría recoger los dos valores que te he dicho en el comentario anterior?

Gracias.
aindergm
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-05-16 11:03 @502

Publicidad

Re: Extraer de cadena de caracteres

Notapor explorer » 2012-06-27 14:52 @661

Si el argumento que le pasas a pruebaPerl.pl es correcto, la expresión regular cazará esos dos valores, y los tendrás en las variables $IP y $out.

Si el print() de la línea 7 no saca nada, es que el argumento no contiene lo esperado.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer de cadena de caracteres

Notapor aindergm » 2012-06-29 04:34 @232

He realizado una prueba para asegurarme de que la dirección llega correctamente, para eso he creado dos ficheros Perl:

principal.pl
Sintáxis: [ Descargar ] [ Ocultar ]
  1. #!/usr/bin/perl 
  2.  
  3. $dirPerl='C:/Users/Gordoa/Documents/UNI/4ºCurso/ProyectoFinGrado/Perl/archivosPerl'; 
  4. $dirComplete='C:/Users/Gordoa/Documents/UNI/4ºCurso/ProyectoFinGrado/server/public_html/AndroidDataMining/iLogand/ID-357841036752224/com.android.launcher_280.out'; 
  5.  
  6. my $response = `perl $dirPerl/perlPrueba.pl $dirComplete`; 
  7.  
  8. print("$response\n"); 


perlPrueba.pl
Sintáxis: [ Descargar ] [ Ocultar ]
  1. #!/usr/bin/perl 
  2.  
  3. $dirData = $ARGV[0]; 
  4.  
  5. my($ID, $out) = $dirData =~ m/\\ID-(\d+)\\(.+?)_/; 
  6.  
  7. print "[$ID][$out]\n"; 
  8.  
  9. print("$dirData\n"); 


Si hago esto puedo ver la salida '$dirData' es la misma que la que se envía, pero no recoge los valores de '$ID' y '$out'

Por lo que estoy seguro que se envía correctamente, pero luego no me guarda los valores.

Gracias
aindergm
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-05-16 11:03 @502

Re: Extraer de cadena de caracteres

Notapor explorer » 2012-06-29 05:36 @275

Claro, porque en $dirComplete estás usando barras diagonales normales ('/'), mientras que la expresión regular está esperando barras diagonales invertidas ('\'), porque es lo que habías mostrado en el primer mensaje de este hilo.

Prueba con esta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my($ID, $out) = $dirData =~ m{/ID-(\d+)/(.+?)_};
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


O, si no sabes si vas a usar un estilo u otro:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my($ID, $out) = $cadena =~ m{[/\\]ID-(\d+)[/\\](.+?)_};
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: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer de cadena de caracteres

Notapor aindergm » 2012-06-29 06:16 @303

Ya he conseguido que funcione.
¡¡Muchas gracias por toda la ayuda que me has dado!!

¡¡¡Gracias!!!
aindergm
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-05-16 11:03 @502

Anterior

Volver a Básico

¿Quién está conectado?

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