I have a string str = "$ 9.0 / hr" or str = "$9.0/hr". I only want the integer value from this in this case 9.0
Language is Ruby 1.9.2
I'd use:
number = str[ /\d*(?:\.\d+)?/ ]
Or, if a leading 0 is required for values less than 1.0,
number = str[ /\d+(?:\.\d+)?/ ]
If you might have other numbers in the string, and only want the (first) one that has a dollar sign before it:
number = str[ /\$\s*(\d+(?:\.\d+)?)/, 1 ]
If it's guaranteed that there will (must) be a decimal place and digit(s) thereafter:
number = str[ /\$\s*(\d+\.\d+)/, 1 ]
Hopefully you can mix and match some of these solutions to get what you need.
If your prices always have dollars.cents format (which is likely for prices) then use this regex:
"$ 9.0 / hr".match(/\d+\.\d+/)[0] # => 9.0
"$9.0/hr".match(/\d+\.\d+/)[0] # => 9.0
Else you should take regex from Phrogz answer.
9.0isn't an integer; it's a float.