Página 1 de 1

Extraer ciertos campos desde un texto

NotaPublicado: 2014-05-09 20:03 @877
por coltx
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.

Re: Extraer ciertos campos desde un texto

NotaPublicado: 2014-05-09 20:33 @898
por explorer
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

Re: Extraer ciertos campos desde un texto

NotaPublicado: 2014-05-10 14:52 @661
por coltx
Muchas gracias, explorer, revisaré lo que me indicas.