如何删除字符串中的所有空格并获得一个数字?(Python)

时间:2015-08-19 17:18:26

标签: python regex string

我有一个字符串。例如:

str=     '\n                                    4 420 700 – 6 219 000 \n        '

'\n  4\xa0420\xa0700 – 6\xa0219\xa0000\xa0 \n'

在这种情况下,我想得到号码:4420700。但任何数字都可以存在。例如,它将是3 333 999 233

我曾尝试过这个解决方案:

>>> import re
>>> re.sub(r'\D','',str)
'4420700621900016'

你能帮帮我吗?

2 个答案:

答案 0 :(得分:0)

拆分和替换。

>>> st =     '\n                                    4 420 700 – 6 219 000 \n        '
>>> re.sub(r'\D', '',st.split('–')[0])
'4420700'

st.split('–')[0].strip().replace(' ', '')

答案 1 :(得分:0)

看起来您想从字符串中删除所有空格,然后解析所有数字的最长初始前缀,如果存在非数字(例如连字符)则停止。这是我的代码:

s = (... your input string ...)

import re
s = re.sub(r"\s", "", s)    # Remove all whitespace
s = re.sub(r"\D.*", "", s)  # Remove everything starting at a non-digit
n = int(s)  # Parse the number (optional)

顺便说一句,不要为变量str命名,因为它会与内置类型str混淆。