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

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

by chipmunk (Parson)
on Feb 03, 2002 at 04:21 UTC ( [id://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'.

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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://143016]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2024-04-20 02:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found