Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: regex to rename last _ with ,

by ArifS (Beadle)
on Sep 11, 2014 at 13:49 UTC ( [id://1100297]=note: print w/replies, xml ) Need Help??


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

Thank you for the code.

s{ _ (?= ^_* \z) }{,}xms;

I would appreciate if someone could explain what it's doing for each part.

Replies are listed 'Best First'.
Re^3: regex to rename last _ with ,
by AnomalousMonk (Archbishop) on Sep 11, 2014 at 14:39 UTC
    +----------------------------- In the scalar $s (interpreted as a str +ing), | +--------------------- if you find an _ (underscore) | | +----------------- that's followed by 0 or more of anythi +ng but an _ (underscore) | | | and then the end-of-string, | | | + -- replace it with a , (comma). | | | | V V V V $s =~ s{ _ (?= [^_]* \z) }{,}xms;

    Update: See "Look-Around Assertions" in the Extended Patterns of perlre.

    (And the use of  <code> ... </code> tags would still be much appreciated.)

    Another Update: If you have Perl version 5.10+, another way (see  \K in Extended Patterns):

    c:\@Work\Perl\monks>perl -wMstrict -le "use 5.010; ;; my @flist = qw( 1st-device-CA_Eth.0/1 2nd-device_TX_Gig.1/1 3rd_device_MO_Gig.1/1 ); ;; for my $s (@flist) { print qq{'$s'}; $s =~ s{ .* \K _ }{,}xms; print qq{'$s'}; print ''; } " '1st-device-CA_Eth.0/1' '1st-device-CA,Eth.0/1' '2nd-device_TX_Gig.1/1' '2nd-device_TX,Gig.1/1' '3rd_device_MO_Gig.1/1' '3rd_device_MO,Gig.1/1'

      And, for completeness:
      xms ^^^ ||| || Make . also match \n (not needed here). || | Make ^ and $ match beginning and end of lines (not needed here). | Allow whitespace in the pattern for readability.
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
        Well explained. Thank you.
      Thank you very much. Much apprecaited!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2024-05-25 14:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found