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

Re: Re: (GOLF) - multiple digit finder regex - 17 chars

by chipmunk (Parson)
on Feb 03, 2002 at 04:21 UTC ( #143016=note: print w/ replies, xml ) Need Help??


in reply to Re: (GOLF) - multiple digit finder regex - 17 chars
in thread regexp golf - homework

/.*?([0-9]).*?\1/
*what's most interesting about this, is that $1 does not work in place of \1.
Well, of course! $1 and \1 mean different things. When $1 is used in a regex, its value is interpolated as the regex is compiled, just like any other variable. For example:
'b' =~ /(.)/; print "Yup!\n" if 'ab' =~ /(.)$1/;
prints Yup! because $1 holds 'b' from the first match and the second regex is compiled as /(.).*c/.

\1, on the other hand, is special regex syntax, and matches the same thing that was matched by the first capturing group in the current regex.

'b' =~ /(.)/; print "Yup!\n" if 'ab' =~ /(.)\1/;
does not print Yup!, because \1 wants to match an 'a'.

(\1 on the right hand side of a substitution, with the same meaning as $1, has been deprecated for quite some time.)

Update: Fixed the explanation; an earlier revision of the example used 'c' instead of 'b'.


Comment on Re: Re: (GOLF) - multiple digit finder regex - 17 chars
Select or Download Code
Replies are listed 'Best First'.
Re: Re: Re: (GOLF) - multiple digit finder regex - 17 chars
by particle (Vicar) on Feb 03, 2002 at 04:39 UTC
    (\1 on the right hand side of a substitution, with the same meaning as $1, has been deprecated for quite some time.)

    yeah. that's how i was used to seeing \1. from people learning perl who are used to vi, ex, etc. on the right hand side, it's a no-no.

    although, there's a problem with the explanation of your first example. $1 can't hold 'c', it's nowhere to be found. but i understand the difference now. docs are good.

    ~Particle

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (10)
As of 2015-07-30 12:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (271 votes), past polls