[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Offtopic: Expresiones regulares, ¡ayudadme!



On vie, sep 10, 1999 at 08:30:17 -0600, Marcelo E. Magallon wrote:
>  demasiado a prisa, en perl:
> 
>  [a-zA-Z]+\d{3}_\d{1,4}[xX]?\s+[0-9]+.[0-9]+\s+\S+\s+\S+\s+\S+\s+\S+

Efectívamente, depurando un poco funciona perfecto si hago:

#!/usr/bin/perl -w

open(FICHENT,"<$ARGV[0]") || die "Error: No puede abrirse el fichero $ARGV[0]";

while (<FICHENT>) {
       
   if (m/^\s*[a-zA-Z]?\d{1,3}?_\d{1,4}?[xX]?\s+([0-9]+.[0-9]+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/){
      $dato = $1;
      $orden = "programa $2 $3 $4 $5";
      open(RESUL,"$orden|");
      while (<RESUL>) {
         $resultado=$_;
         print $dato, "\t", $resultado;
      }
      close RESUL;
   }
}
						     
close FICHENT;


Lo único que no llego a comprender es por qué si le añado '$' al final del
patrón (tal como me puso Marcelo) me toma únicamente la última línea del 
fichero de entrada.

Gracias a todos en especial a Marcelo y a Ricard cuya solución probaré
porque me pica la curiosidad de php hace tiempo, muchas gracias... no sabeis
del atasco que me habeis sacado.
P.D1: ¿Cómo implementaría en perl el análogo a 'if(argc<NUMARGS) exit(1);' 
de C?.
P.D2: Para no dar la lata con perl aquí ¿existe alguna lista de correo en
español sobre perl?.
-- 
Javier Viñuales Gutiérrez <vigu@ctv.es>
Webs: 	http://www.ctv.es/USERS/vigu		Personal
	http://www.ctv.es/USERS/vigu/linux/	ViguLinux
PGP public key:  http://www.ctv.es/USERS/vigu/vigu.pubkey


Reply to: