Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^4: regex to rename last _ with ,

by AppleFritter (Vicar)
on Sep 14, 2014 at 14:57 UTC ( [id://1100531]=note: print w/replies, xml ) Need Help??


in reply to Re^3: regex to rename last _ with ,
in thread regex to rename last _ with ,

First, I can never remember the exact syntax of the look-around assertions

They're fairly mnemonic, actually:

  • (?=PATTERN) - positive lookahead. Mnemonic: the following data equals (=; i.e. matches) the supplied pattern.
  • (?!PATTERN) - negative lookahead. Mnemonic: the following data does not (!) match the pattern.
  • (?<=PATTERN) - positive lookbehind. Mnemonic: the preceding (<) data equals (=; i.e. matches) the pattern.
  • (?<!PATTERN) - negative lookbehind. Mnemonic: the preceding (<) data does not (!) match the pattern.

Personally I might've chosen (?>=PATTERN) and (?>!PATTERN) for lookahead assertions to make the syntax of these symmetric in direction as well (though that would've clashed with non-backtracking patterns), but even this way I still think these are fairly easy to remember.

Replies are listed 'Best First'.
Re^5: regex to rename last _ with ,
by Grimy (Pilgrim) on Sep 15, 2014 at 09:36 UTC

    Look-ahead is used much more frequently than lookbehind, hence the shorter syntax. Perl is quite heavily Huffman coded.

    Look-behind is actually almost useless, since variable-length look-behind isnít supported. It can be approximated using \K

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2024-04-17 11:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found