• Publicidad

Extraer ciertos campos desde un texto

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

Extraer ciertos campos desde un texto

Notapor coltx » 2014-05-09 20:03 @877

Estimados,

Tengo la siguiente consulta: necesito saber cómo puedo extraer ciertos campos desde un texto que se encuentren dentro de los caracteres '<-' y '->', y luego reemplazarlos por valores. Por ejemplo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
 "Hola mi nombre es <-CampoNombre-> y tengo <-Edad-> años,
  mis padres son <-NPapa-> y <-MPapa->"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Saludos y desde ya muchas gracias.
coltx
Perlero nuevo
Perlero nuevo
 
Mensajes: 79
Registrado: 2011-09-16 08:01 @376

Publicidad

Re: Extraer ciertos campos desde un texto

Notapor explorer » 2014-05-09 20:33 @898

Lo que comentas es la base de los sistemas de plantillas que se usan en muchísimos sitios.

En Perl, hay muchos sistemas de plantillas. El más famoso es Template Toolkit.

Pero, para una cosa sencilla, puedes usar la combinación hash más el operador sustitución, para realizar toda la tarea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. use File::Slurp;
  4.  
  5. my $archivo = read_file('kk.txt');
  6.  
  7. my %reemplazos = (
  8.     'CampoNombre' => 'JoseJuan',
  9.     'Edad' => '23',
  10.     'NPapa' => 'JoseJuan Papa',
  11.     'MPapa' => 'La mamá',
  12. );
  13.  
  14. while (my($key, $valor) = each %reemplazos) {
  15.     $archivo =~ s/<-$key->/$valor/g;
  16. }
  17.  
  18. print $archivo;         # "Hola mi nombre es JoseJuan y tengo 23 años,
  19.                         #  mis padres son JoseJuan Papa y La mamá"
Coloreado en 0.002 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: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer ciertos campos desde un texto

Notapor coltx » 2014-05-10 14:52 @661

Muchas gracias, explorer, revisaré lo que me indicas.
coltx
Perlero nuevo
Perlero nuevo
 
Mensajes: 79
Registrado: 2011-09-16 08:01 @376


Volver a Básico

¿Quién está conectado?

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