Python 使用正则表达式从字符串中提取数字

Python 使用正则表达式从字符串中提取数字,python,regex,Python,Regex,我需要从字符串“iama559348number”中提取数字。答案应为非捕获,预期输出为5559348。我正试着这样做 printre.searchr“[^.*]?[0-9]*”,“IAMA559348number”但我只收到第一个字母 >>> print(re.search(r'([0-9]+)','iama5559348number').groups()[0]) '5559348' 或 或 您可以这样使用re.findall: x= re.findall(r'[0-9]+

我需要从字符串“iama559348number”中提取数字。答案应为非捕获,预期输出为5559348。我正试着这样做 printre.searchr“[^.*]?[0-9]*”,“IAMA559348number”但我只收到第一个字母

>>> print(re.search(r'([0-9]+)','iama5559348number').groups()[0])
'5559348'

您可以这样使用re.findall:

x= re.findall(r'[0-9]+','iama5559348number')[0]
print(x)
或者:

x= re.findall(r'\d+','iama5559348number')[0]
print(x)
您可以这样使用re.findall:

x= re.findall(r'[0-9]+','iama5559348number')[0]
print(x)
或者:

x= re.findall(r'\d+','iama5559348number')[0]
print(x)

@西蒙:是的,包括我在内now@Simon是的,我现在包括了我很感激你的回答,但是你能使用非捕获组吗?:或[^],并且在回答中使用“*”而不是“+”,只是不知道没有捕获怎么做我很感激你的回答,但是你能使用非捕获组吗?:或[^]在回答中也使用“*”而不是“+”。Just dunno不知道在没有捕获的情况下如何做。你可以使用非捕获组来回答字母“iama”@AdityaMatturi:添加了一个案例iama\d+但根本不需要是的,但我想在非捕获方面进行更多练习。只是想知道怎么处理它iama\d+??=数字或iama\d*??=不带+的数字,否则\D*\D*??=\D*$您能用非捕获组来回答字母“iama”@AdityaMatturi:添加了一个案例吗iama\d+但根本不需要是的,但我想在非捕获方面进行更多练习。只是想知道怎么处理它iama\d+??=数字或iama\d*??=不带+的数字,否则\D*\D*??=\D*$