hi john
i implementet your solution. mine actually did work, but yours seemed more logical.
it works nicely.
thank you
martin
On Wed, Apr 17, 2002 at 12:58:07PM -0700, John W. Krahn wrote:
> [EMAIL PROTECTED] wrote:
> >
> > hi,
>
> Hello,
>
> > im pasting some more of the lines i need to parse. i guess
> > im just learning regex and just espesially learning how to
> > ask the correct questions! heh, dont ask regex without
> > showing enuf of the stuff you want to parse :)
> >
> > theres is these three basic entries (skakkebaek is spelled awfully. only skak
>matches em all :-) :
> >
> > Hits Cited Author Cited Work Volume Page Year
> >
>______________________________________________________________________________________________
> >
> > [_][667] 279 ...Skakkebaek NE ENVIRON HEALTH PERSP 104 741
> 1996
> > [_] 1 SKAKKEBAEK NE EARLY DETECTION TEST 26
>1981
> > [_] 3 SKAKKEBAEK NE EARLY DETECTION TEST
>1981
> >
> > then there is these freaks:
> > this one contains NE in the name and NE in GENE so GENE is truncated if care is
>not taken.
> >
> > [_][718] 18 ...Skakkebaek NE GENE CHROMOSOME CANC 20 412
> 1997
> >
> > here the journal name starts with 7
> >
> > [_] 3 SKAKKEBAEK NE 7 WORLD C FERT STER
>1971
> >
> > here the journal name ends with a digit thus entangling it in the following page
>number 101.
> >
> > [_] 1 SKAKKEBAEK NE ENV HLTH PERSPECT S2 101 1
>1993
> >
> > here is my mathing routine - works with all but the last freak!:
> >
> > [snip code]
>
>
> This works with the data above:
>
> while ( <DATA> ) {
> chomp;
> my @field = split /\s{2,}/;
>
> shift @field if $field[0] =~ /]$/;
> (my $citations) = (shift @field) =~ /(\d+)$/;
>
> shift @field if $field[0] =~ /skak.*ne$/i;
>
> my $journal = shift @field;
> my $year = pop @field || '';
> my $page = pop @field || '';
> my $volume = pop @field || '';
>
> print "Citation: $citations\nJournal: $journal\nVolume: $volume\nPage:
>$page\nYear: $year\n\n";
> }
>
> __DATA__
> [_][667] 279 ...Skakkebaek NE ENVIRON HEALTH PERSP 104 741
>1996
> [_] 1 SKAKKEBAEK NE EARLY DETECTION TEST 26 1981
> [_] 3 SKAKKEBAEK NE EARLY DETECTION TEST 1981
> [_][718] 18 ...Skakkebaek NE GENE CHROMOSOME CANC 20 412
>1997
> [_] 3 SKAKKEBAEK NE 7 WORLD C FERT STER 1971
> [_] 1 SKAKKEBAEK NE ENV HLTH PERSPECT S2 101 1 1993
>
>
>
>
> John
> --
> use Perl;
> program
> fulfillment
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]