How can I convert string into integer and remove every character from that change. Example:
S = "--r10-" I want to have this: S = 10
This not work:
S = "--10-" int(S) How can I convert string into integer and remove every character from that change. Example:
S = "--r10-" I want to have this: S = 10
This not work:
S = "--10-" int(S) You can use filter(str.isdigit, s) to keep only those characters of s that are digits:
>>> s = "--10-" >>> int(filter(str.isdigit, s)) 10 Note that this might lead to unexpected results for strings that contain multiple numbers
>>> int(filter(str.isdigit, "12 abc 34")) 1234 or negative numbers
>>> int(filter(str.isdigit, "-10")) 10 Edit: To make this work for unicode objects instead of str objects, use
int(filter(unicode.isdigit, u"--10-")) operator.methodcaller("isdigit") so it will work with both str and unicode.I prefer Sven Marnach's answer using filter and isdigit, but if you want you can use regular expressions:
>>> import re >>> pat = re.compile(r'\d+') # '\d' means digit, '+' means one or more >>> int(pat.search('--r10-').group(0)) 10 If there are multiple integers in the string, it pulls the first one:
>>> int(pat.search('12 abc 34').group(0)) 12 If you need to deal with negative numbers use this regex:
>>> pat = re.compile(r'\-{0,1}\d+') # '\-{0,1}' means zero or one dashes >>> int(pat.search('negative: -8').group(0)) -8