[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

regexp for finding floats in a string

Bil Kleb

8/14/2006 10:38:00 PM

What RegExp should I be using for floats?

Currently, I have /[-+0-9eE.]+/, viz,

require 'test/unit'
class TestFloatRegExp < Test::Unit::TestCase
def test_finds_em
%w{ 1 -2 3.0 0.4 5.0e+5 -6e+06 .7E+7 }.each do |string|
assert( string.match(/[-+0-9eE.]+/), "no match >>#{string}<<" )
end
end
end

--
Bil
http://fun3d.lar...
3 Answers

Xavier Noria

8/14/2006 10:56:00 PM

0

On Aug 15, 2006, at 12:50 AM, Bil Kleb wrote:

> What RegExp should I be using for floats?
>
> Currently, I have /[-+0-9eE.]+/, viz,
>
> require 'test/unit'
> class TestFloatRegExp < Test::Unit::TestCase
> def test_finds_em
> %w{ 1 -2 3.0 0.4 5.0e+5 -6e+06 .7E+7 }.each do |string|
> assert( string.match(/[-+0-9eE.]+/), "no match >>#{string}<<" )
> end
> end
> end

Have a look at the regexp in

perldoc -q float

-- fxn

PS: Your mail client runs on a Mac, that works there.


Bil Kleb

8/16/2006 1:42:00 PM

0

Xavier Noria wrote:
> Have a look at the regexp in
>
> perldoc -q float

/^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/

Ouch!

Thanks; I think. :)

Regards,
--
Bil
http://fun3d.lar...

Alex LeDonne

8/17/2006 6:05:00 PM

0

On 8/16/06, Bil Kleb <Bil.Kleb@nasa.gov> wrote:
> Xavier Noria wrote:
> > Have a look at the regexp in
> >
> > perldoc -q float
>
> /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
>
> Ouch!
>
> Thanks; I think. :)

Quick caveat - that's for a c float (as mentioned in that perldoc
snippet). Ruby float (& other numeric) literals allow the underscore
character (with restrictions) as well. So really, it depends on
exactly what you're parsing and why.

-A