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.4 db.") ["13.4"]
A more robust version would be:
>>> re.findall(r"[-+]?d*.d+|d+", "Current Level: -13.2 db 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
If you’ve picked up this book, you’re probably aware of the extraordinary progress that deep learning has represented for the field of artificial intelligence in the recent past. In a mere five ye...
Learning Correct Cryptography by Example. The interconnected world of the current era has drastically changed everything, including banking, entertainment, and even statecraft. Despite difference...
A recipe for having fun and getting things done with the Raspberry Pi ...
Black Hat Python, 2nd Edition: Python Programming for Hackers and Pentesters PDF, 2nd Edition. Fully updated for Python 3, the second edition of this worldwide bestseller (over 100,000 copies sold)...