Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: regex meaning

by prasadbabu (Prior)
on Nov 12, 2007 at 10:31 UTC ( [id://650247]=note: print w/replies, xml ) Need Help??


in reply to regex meaning

Replacing the number starting with one or more zeros and followed by a number with none. Here (?=\d), is positive look ahead which has zero width assertion. So it ll replace only the zeroes and not the following number.

Take a look at perlre and YAPE::Regex::Explain

For example:

$str = '004asdfsa'; #string starting with zero and followed by numbers $str =~ s/^0+(?=\d)//; print $str; Output: -------- 4asdfsa
$str = 'a004asdfsa'; #not starting with zero $str =~ s/^0+(?=\d)//; print $str; Output: -------- a004asdfsa
$str = '0a4sdfsa'; #no number followed by zero $str =~ s/^0+(?=\d)// ; print $str; Output: -------- 0a4sdfsa

Prasad

Replies are listed 'Best First'.
Re^2: regex meaning
by bart (Canon) on Nov 12, 2007 at 15:03 UTC
    (I agree with what you say, but... I think a little simplification may be in order.)

    The reason for the lookahead (?=\d) is so it wouldn't replace a string "0000" with "", but with "0", by requiring at least one remaining digit.

    So the purpose is to strip leading zeros from strings that look like numbers, but leave a significant "0".

Re^2: regex meaning
by hashin_p (Initiate) on Nov 12, 2007 at 11:11 UTC
    Thank you very much..

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2024-04-18 05:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found