Suppose I had a string
string1 = "498results should get"
Now I need to get only integer values from the string like 498
. Here I don't want to use list slicing
because the integer values may increase like these examples:
string2 = "49867results should get" string3 = "497543results should get"
So I want to get only integer values out from the string exactly in the same order. I mean like 498,49867,497543
from string1,string2,string3
respectively.
Can anyone let me know how to do this in a one or two lines?
To find numbers from a given string in Python we can easily apply the isdigit() method. In Python the isdigit() method returns True if all the digit characters contain in the input string and this function extracts the digits from the string.
>>> import re >>> string1 = "498results should get" >>> int(re.search(r'\d+', string1).group()) 498
If there are multiple integers in the string:
>>> map(int, re.findall(r'\d+', string1)) [498]
An answer taken from ChristopheD here: https://stackoverflow.com/a/2500023/1225603
r = "456results string789" s = ''.join(x for x in r if x.isdigit()) print int(s) 456789
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With