Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: YAPC::NA::2003::mandog

by grantm (Parson)
on Jun 23, 2003 at 10:12 UTC ( [id://268099]=note: print w/replies, xml ) Need Help??


in reply to YAPC::NA::2003::mandog

I did not know there was a difference between \1 and $1 inside a regular expression

OK, I'll bite :-) I know that \1 can appear in the match (left) part of a substitution (s///) but $1 can only appear in the replacement. Are there other differences?

Replies are listed 'Best First'.
Re: YAPC::NA::2003::mandog
by Abigail-II (Bishop) on Jun 23, 2003 at 23:24 UTC
    $1 is what was matched by the first set of parenthesis of the last succesful regular expression. It will therefore never refer to (parts of) the current match in progress (ignoring (?{ }) and (??{ }) issues). $1 is a variable - it interpolates just like any other variable; it doesn't have a special meaning inside a regular expression.

    \1 does have a special meaning inside a regular expression: it matches exactly the same (sub)string as was matched by the first set of parenthesis in the current regular expression. It's not a variable, it's a special construct. In other interpolative contexts, it means something else: \NNN means the character with octal value NNN. It's a construct, just like \xNN or \n.

    There's one exception, inside the replacement part of a substitution, \1 .. \9 (so, that's only 9 exceptions, it doesn't work for higher numbers) are equivalent to $1 .. $9, but their use does trigger a warning.

    Abigail

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2024-04-23 21:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found