如何提取字符串中的第一个数字 - Python

时间:2016-08-23 19:10:50

标签: python string numbers truncate

如何删除字符串中第一个字母前的所有数字?例如,

myString = "32cl2"

我希望它成为:

"cl2"

我需要它可以工作任何长度的数字,所以2h2应该变成h2,4563nh3变成nh3等。 修改 这个数字之间没有空格,因此它与其他问题不同,它特别是第一个数字,而不是所有数字。

2 个答案:

答案 0 :(得分:5)

如果你在没有正则表达式的情况下解决它,你可以使用itertools.dropwhile()

>>> from itertools import dropwhile
>>>
>>> ''.join(dropwhile(str.isdigit, "32cl2"))
'cl2'
>>> ''.join(dropwhile(str.isdigit, "4563nh3"))
'nh3'

或者,使用re.sub()替换字符串开头的一个或多个数字:

>>> import re
>>> re.sub(r"^\d+", "", "32cl2")
'cl2'
>>> re.sub(r"^\d+", "", "4563nh3")
'nh3'

答案 1 :(得分:2)

使用lstrip

myString.lstrip('0123456789')

import string
myString.lstrip(string.digits)