["python","regex","floating-point","data-extraction"]
How to extract a floating number from a string

I have a number of strings similar to Current Level: 13.4 db. and I would like to extract just the floating point number. I say floating and not decimal as it's sometimes whole. Can RegEx do this or is there a better way?
If your float is always expressed in decimal notation something like >>> import re >>> re.findall("\d+\.\d+", "Current Level: 13.4db.") ['13.4'] may suffice. A more robust version would be: >>> re.findall(r"[-+]?(?:\d*\.*\d+)", "Current Level: -13.2db or 14.2 or 3") ['-13.2', '14.2', '3'] If you want to validate user input, you could alternatively also check for a float by stepping to it directly: user_input = "Current Level: 1e100 db" for token in user_input.split(): try: # if this succeeds, you have your (first) float print(float(token), "is a float") except ValueError: print(token, "is something else") # => Would print ... # # Current is something else # Level: is something else # 1e+100 is a float # db is something else