Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Repeating regex assign to a list

by Tanktalus (Canon)
on Mar 04, 2016 at 18:10 UTC ( [id://1156838]=note: print w/replies, xml ) Need Help??


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:  <%-{-{-{-<

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1156838]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2024-04-25 05:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found