从 Python 中的字符串中获取数字

Get number from string in Python

我有一个字符串,我只能从该字符串中获取数字。

 url = "www.mylocalurl.com/edit/1987"

现在从那个字符串中,我只需要得到 1987。 我一直在尝试这种方法,

id = [int(i) for i in url.split() if i.isdigit()]

但我只得到 [] 列表。

您可以使用正则表达式并单独获取列表中的数字。

import re
url = "www.mylocalurl.com/edit/1987"
digit = re.findall(r'\d+', url) 

输出:

['1987']

将所有 non-digits 替换为空白(有效地“删除”它们):

import re

num = re.sub('\D', '', url)

live demo

您什么也得不到,因为默认情况下 .split() 方法会在有空格的地方拆分句子。由于您正在尝试拆分没有空格的超链接,因此它不会拆分任何内容。您可以执行的操作称为使用正则表达式的捕获。例如:

import re
url = "www.mylocalurl.com/edit/1987"
regex = r'(\d+)'
numbers = re.search(regex, url)
captured = numbers.groups()[0]

如果你不知道什么是正则表达式,代码基本上就是这么说的。使用定义为 r'(\d+)'regex 字符串,这基本上意味着捕获任何数字,search 到 url。然后在 captured 中,我们有第一个捕获的组,即 1987.

如果您不想使用它,那么您可以使用您的 .split() 方法,但这次使用 / 作为分隔符提供拆分。例如`url.split('/').