Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: regex meaning

by prasadbabu (Prior)
on Nov 12, 2007 at 10:31 UTC ( #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


Comment on Re: regex meaning
Select or Download Code
Re^2: regex meaning
by hashin_p (Initiate) on Nov 12, 2007 at 11:11 UTC
    Thank you very much..
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".

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (12)
As of 2014-09-23 16:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (229 votes), past polls