On 4/17/07, mwmarkland / yahoo.com <mwmarkland / gmail.com> wrote: > I have been reading _The Ruby Way_ and am confused by the temperature > conversion sample program on page 14. > > The line in question is > > abort "#{temp} is not a valid number." if temp !~ /-?\d+/ > > What I do not understand is that if \d matches "digits", which I > understand to be [0-9], how can this expression match "98.6", which it > seems to do just fine. > > Thank you in advance for the clarification. Well I guess you are a bright student. The regexp part has been nicely answered by Bill and it follows that a regular expression allowing for all kind of different string representations of Floats is quite complex. Why not let ruby do the work for us ;) May I introduce you to this idiom: Float( temp ) rescue abort temp << " is not a valid number." Cheers Robert > > (I have the 2nd Edition of _The Ruby Way_, First Printing. I have run > the example using ruby 1.8.5 (2007-03-13 patchlevel 35) [i386-linux]). > > Matt > > > -- You see things; and you say Why? But I dream things that never were; and I say Why not? -- George Bernard Shaw