in reply to Repeating regex assign to a list

Not entirely clear what you want... so I'm guessing a bit.

#!/usr/bin/env perl5.22.1 use strict; use warnings; use 5.10.1; my $x ="aaa bbb ccc dd ee ff dd TAG=lls foo TAG=some randome tag TAG=l +ast_tag"; #my $x ="TAG=lls foo TAG=some randome tag TAG=last_tag"; my @tags = split /\s*TAG=/, $x; # before the first TAG, discard. shift @tags; my $i = 0; say "tag ", $i++, ": [$_]" for @tags;
and the output is:
tag 0: [lls foo] + tag 1: [some randome tag] tag 2: [last_tag]
Is that what you're looking for?

Replies are listed 'Best First'.
Re^2: Repeating regex assign to a list
by iang (Sexton) on Mar 04, 2016 at 18:49 UTC
    It is exactly what I was looking for, only I was trying to be a bit clever (or not) and wanted to shorten it into a single REGEX. --- thank you for your reply

      Tanktalus's split approach is probably better, but here's a "clever (or not) ... single regex" that produces the same output:

      c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "use 5.010; ;; my $s = 'aaa bbb ccc dd ee ff dd TAG=lls foo TAG=some randome tag TAG +=last_tag'; ;; my @ra = $s =~ m{ TAG \s* = \K (?: (?! \s* TAG) .)* }xmsg; dd \@ra; " ["lls foo", "some randome tag", "last_tag"]
      (Needs 5.10+ for the  \K regex operator.)


      Give a man a fish:  <%-{-{-{-<