Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Regex question - identify which pattern comes first

by ikegami (Patriarch)
on May 02, 2026 at 01:53 UTC ( [id://11167677]=note: print w/replies, xml ) Need Help??


in reply to Regex question - identify which pattern comes first

if ( /(BA[ABC]{2})|(CA[CD]{2})|(DA[SC]{2})/ ) { my $first = ( defined( $1 ) ? 1 : defined( $2 ) ? 2 : 3 ); ... }
local our $first; / (?: BA[ABC]{2} (?{ $first = 1; }) | CA[CD]{2} (?{ $first = 2; }) | DA[SC]{2} (?{ $first = 3; }) /x;

Update: I had mixed up (??{ }) and (?{ }). Fixed.

Replies are listed 'Best First'.
Re^2: Regex question - identify which pattern comes first
by harangzsolt33 (Curate) on May 02, 2026 at 02:15 UTC
    Oh wow, that is an amazingly simple solution! Thank you so much!!! :-)
      > that is an amazingly simple solution!

      Did you try it?

      These (??{ $first = 1; }) won't work because they'll include 1,2 or 3 into the regex.

      Try (?{ $first = 1; }); with a single ? instead.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      see Wikisyntax for the Monastery

      Thus
        No, the second solution did not work. But the first one does work, and I never thought of doing it that way even though I knew you could capture using the parentheses. I didn't know you can use defined to figure out which one of the patterns was captured. The second solution, I think, requires a more modern Perl interpreter. I use Perl 5.8 mostly. It said unmatched regex --> / something... But it's okay. I'll use the first solution. I think, it's also easier to read.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (3)
As of 2026-05-12 15:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.