in reply to Re: regex: extract multiple number of date patterns from certain lines
in thread regex: extract multiple number of date patterns from certain lines

The match operator is not particularly well suited to extract this data since the data has two dimensions.

Due to the different structure of captures in Perl 6 regexes that doesn't hold true for Perl 6 anymore. Here's a Perl 6 solution that extracts all trailing dates with one regex match:

use v6; my $str = '2009-02-02 06:12:57,500 dates processed: 2009-01-31, 2009-01-29, 2009 +-01-30 2009-02-18 06:03:47,713 dates processed: 2009-02-16, 2009-02-17 2009-02-19 05:58:29,138 dates processed: 2009-02-18 '; token date { \d**4 '-' \d**2 '-' \d ** 2 }; regex line { ^^ \N* 'processed:' \s* <date> [','\s* <date>]* \s* \n } +; if $str ~~ m/ ^ <line>+ / { for $<line> -> $l { print "Dates in line $l"; .say for $l<date>; } } else { say "no match"; }

(tested on Rakudo).

  • Comment on Re^2: regex: extract multiple number of date patterns from certain lines
  • Download Code

Replies are listed 'Best First'.
Re^3: regex: extract multiple number of date patterns from certain lines
by Random_Walk (Prior) on Mar 04, 2009 at 16:36 UTC

    Very nice.

    Unfortunately I only get to upgrade production to 5.10 in two weeks time, 6 is going to have to wait a few more weeks I guess.

    Cheers,
    R.

    Pereant, qui ante nos nostra dixerunt!