On Fri, May 6, 2011 at 11:43 PM, <[email protected]> wrote:
> Can someone tell me, where is the fault, please? And for the case, there are
> 80 data´s in the line, is there a shorter style to find & change them?
>
You showed a slash between the numbers but mentioned earlier that the
numbers can be in any format in the string. In any case, the code
below should work for that too. :)
A problem with your regex is that it will only match numbers with a
decimal point. Unless your input always has a decimal point, you need
to take care of whole numbers too.
Try this:
while( <$in> ) {
my @matches = m/(\d+\.\d+|\d+)/g; # This looks for decimal numbers
and then whole numbers
# II am matching on the default $_ up there. If you give an array
on the left side, you get all your matches in it
# if no matches the array will be empty
#for your example
print "$matches[0]\n" if @matches;
# if you want to print all the numbers, comma separated
print join(",", @matches), "\n" if @matches;
}
- Sandip
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/