[Programación] Flex y expresiones regulares (O gioco bonito...)

Horacio Castellini programacion@lugro.org.ar
Tue, 11 May 2004 18:16:14 -0300


Hola:
	Estoy desarrollando un programa en flex, para computar hilos y cluster en 
lista de correos y como caballito de ensallo uso los históricos de la lista 
lugro ;) (espero que seba no se enoje)... Ahora bien el siguiente código flex 
me da ciertos resultados indeceados....
--------------------------------------------------------------------------------------
%{
#include<stdio.h>
#include<stdlib.h>
int nfrom, ntema;
%}
nfrom=ntema=0;
PATRON ^From:.*"(".*
TEMA ^Subject.*


%%
{PATRON} {
                nfrom++;
                printf("%s ",yytext);
        }

{TEMA} {
                ntema++;
                printf("%s \n",yytext);
        }

. /*ignora lo no reconocido*/

[ \t\n]+ /*se come los blancos*/

%%

int main(int argc,char *argv[])
{
        yylex();
        printf(" Numero de From %d\n",nfrom);
        printf(" Numero de Temas %d\n",ntema);
        return 0;
}
----------------------------------------------------------------------------------

Como ser:

From:  (Sebastián  Criado) Subject:  Ayuda con minidistro en disket 
From:  (Rosarinos.com) Subject:  Ayuda con minidistro en disket 
Subject: Re:  Ayuda con minidistro en disket 
      ^^^^^^^^^^^^^^^^^^^^^^ Esto no debe salir
From:  (Sebastián  Criado) Subject:  Ayuda con minidistro en disket 

Pues aca hay un cluster referente al tema "Ayuda con minidistro en disket " 
entre 3 nodos (personas) distintas pero no quiero que aparesca el "null-from" 
en stdout... alguna solución....?