Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: (Ovid) Re: Regex to zero suppress

by mkmcconn (Chaplain)
on Dec 30, 2000 at 09:43 UTC ( [id://48976]=note: print w/replies, xml ) Need Help??


in reply to (Ovid) Re: Regex to zero suppress
in thread Regex to zero suppress

Please take the following with a grain of salt. Ovid has already given the best answer.
It makes me wince, now, but it was actually used in production to strip leading zeros from numbers in a list, in the first real Perl program I ever wrote.

#!/usr/bin/perl -w @numberarray = qw(00000900011 10001000100 00022200101); for $digits (@numberarray){ @temparray = split (//,$digits); $incr=0; while ($temparray[0] eq 0) { shift @temparray; $incr++; } unshift (@temparray," "x$incr); $digits = join('',@temparray); print "$digits\n"; }

I couldn't discover a better way than to shift out the zeroes and unshift the replacing text, then join the result together.
It isn't pretty, but, as far as I can tell, it doesn't break.

mkmcconn
novice


Update:
And now, a monk, I never would have posted this (wonderful what a few weeks at perlmonks can do), but if I had, I would have suggested to novice mkmcconn that even taken with a grain of salt, numerous difficulties in his solution could be avoided by writing it this way:

#!/usr/bin/perl -wl use strict; my @numberarray = qw(000000 000002 001110 010201 010010 001000 0001 +20 010030); for (@numberarray){ next if $_ == 0; my @array = split //; my $incr = 0; while ($array[0] eq 0) { shift @array; $incr++; } unshift (@array,"\x20" x $incr); print @array; }
And then would have advised him (as a friend) of the topical difference between "Regex to zero suppress" and "Subroutine to remove zero-padding".

It will be interesting to find out what advice I might give myself someday, about this update.
mkmcconn

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2024-04-25 19:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found