Greetings again good and saintly monks,
This is an interesting little regex problem that grew out of a recent class assignment:
Basically I want to take a line of text that contains values in Chinese national currency like this:
__DATA__ Hello all! Today I bought breakfast for 02.50 and lunch for 10.20 + Dinner was a real splurge at 21.00. __END__
And convert it and put it out in American dollars like this:
__DATA__ Hello all! Today I bought breakfast for 00.32 and lunch for 01.30 +. Dinner was a real splurge at 02.67. __END__
note that it is ok to keep the 0s on the left side of the numbers after the conversion.
I have managed to come up with something that looks like this:
my $string = <>; my $word; ### # I need help fixing this split function so that I can match the strin +gs below but # still keep the formatting from the original text. ### my @array = split(/*regex help needed here!*/, $string); while(@array){ $word = shift(@array); if($word = ~ /[0-9][0-9][.][0-9][0-9]/)){ ### #I have figured out the math to do the currency conversion ### print “$word”; } else{ print “$word”; } }
Basically I think it comes down to the fact I need help making the split function more intelligent. Is this possible, or am I asking too much from a simple regex?
Thanks for all help and opinions,
-moxIn reply to Crafting a regex for a split() function... by chinamox
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |