Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Capturing RegExp Matches

by arturo (Vicar)
on Jul 03, 2002 at 13:38 UTC ( #179155=note: print w/replies, xml ) Need Help??

in reply to Capturing RegExp Matches

The general answer to this sort of problem is to use capturing parentheses in your regex in combination with the /g operator:

# assume $regex has been built with qr// and matches what you want my $regex = qr/foobar/; # assuming $data contains all the data you want to scan from my @things_im_interested_in = ( $data =~ /($regex)/g ); # or, if it isn't and you are doing this from multiple data # strings push @things_im_interested_in, $data_chunk =~/($regex)/g;

The /g modifier returns all the matches in the string, so those match operators return a list of the matching parts of the string.

However, as a read through the Perl FAQ (or even on this site for, say "Email Address") will reveal, using regexes to match email addresses is a dicey issue in the first place.

I mistrust all systematizers and avoid them. The will to a system shows a lack of integrity -- F. Nietzsche

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (1)
As of 2023-06-03 05:14 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (7 votes). Check out past polls.