Python 如何从给定字符串中提取数字

Python 如何从给定字符串中提取数字,python,regex,python-3.x,Python,Regex,Python 3.x,我需要从上面显示的字符串中得到13,它给了我一个错误,int(result)的错误不是字符串。因此,我需要从字符串中获取数字并将其转换为整数,我如何才能做到这一点,谢谢。您需要从组()中获取匹配的数字。: 一些示例用法: def parse_distance(string): pp = re.compile(r"(\d+)-foot") match = pp.search(string) return int(match.group(1)) if match else N

我需要从上面显示的字符串中得到13,它给了我一个错误,int(result)的错误不是字符串。因此,我需要从字符串中获取数字并将其转换为整数,我如何才能做到这一点,谢谢。

您需要从
组()中获取匹配的数字。

一些示例用法:

def parse_distance(string):
    pp = re.compile(r"(\d+)-foot")
    match = pp.search(string)
    return int(match.group(1)) if match else None

您需要从
组()中获取匹配的数字。

一些示例用法:

def parse_distance(string):
    pp = re.compile(r"(\d+)-foot")
    match = pp.search(string)
    return int(match.group(1)) if match else None

似乎要从给定字符串中提取数字

>>> print(parse_distance("LaMarcus Aldridge misses 13-foot two point shot"))
13
>>> print(parse_distance("LaMarcus Aldridge misses 1300-foot two point shot"))
1300
>>> print(parse_distance("No digits"))
None


似乎要从给定字符串中提取数字

>>> print(parse_distance("LaMarcus Aldridge misses 13-foot two point shot"))
13
>>> print(parse_distance("LaMarcus Aldridge misses 1300-foot two point shot"))
1300
>>> print(parse_distance("No digits"))
None


您可以使用
group()
group(0)
来匹配整个文本,即使模式中没有捕获组。但是我需要重新编译模式((\d+)-foot),因为我需要距离?任何想法都可以使用
group()
group(0)
来匹配整个文本,即使模式中没有捕获组。但是我需要重新编译模式((\d+)-foot),因为我需要距离?有什么想法吗
In [19]: result = [int(r) for r in  re.findall('\d+', sentence)]
In [20]: result
Out[20]: [13]