Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
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
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 avoiding work at the Monastery: (8)
As of 2014-10-31 08:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (215 votes), past polls