Python 正则表达式没有得到所有的数字

Python 正则表达式没有得到所有的数字,python,regex,Python,Regex,我试图从如下字符串中获取名称和数字: string = '><span>Name</span></p><div class="info"><span>100 years old<' string='>Name100岁([0-9]+),string) 但是,为什么第一个正则表达式没有得到所有的数字?*默认情况下是-将该选择器更改为*?会导致非贪婪匹配器: >>> re.findall('<span

我试图从如下字符串中获取名称和数字:

string = '><span>Name</span></p><div class="info"><span>100 years old<'
string='>Name

100岁([0-9]+),string)

但是,为什么第一个正则表达式没有得到所有的数字?

*
默认情况下是-将该选择器更改为
*?
会导致非贪婪匹配器:

>>> re.findall('<span>([a-zA-Z]+)</span>(.*?)([0-9]+)',string)
[('Name', '</p><div class="info"><span>', '100')]
>>关于findall('([a-zA-Z]+)(.*)([0-9]+)',字符串)
[('Name','

','100')] 默认情况下,
*
是-将该选择器更改为
*?
将导致非贪婪匹配器:

>>> re.findall('<span>([a-zA-Z]+)</span>(.*?)([0-9]+)',string)
[('Name', '</p><div class="info"><span>', '100')]
>>关于findall('([a-zA-Z]+)(.*)([0-9]+)',字符串)
[('Name','

','100')]
因为“.”得到了一些数字

你可以试试这个

“([a-zA-Z]+)(\\D*)([\\D]+)”

注意:我不知道您是否需要转义“\”

,因为“.”正在获取一些数字

你可以试试这个

“([a-zA-Z]+)(\\D*)([\\D]+)”

注意:我不知道你是否需要逃避“\”

什么,什么?
re.findall('<span>([a-zA-Z]+)</span>(.*)>([0-9]+)',string)
>>> re.findall('<span>([a-zA-Z]+)</span>(.*?)([0-9]+)',string)
[('Name', '</p><div class="info"><span>', '100')]