如何提取输入的特定部分?

How can I extract a specific part of an input?

首先我正在制作某种计时器(你会知道我为什么这么说)。我有一个 class 并且每个参数都采用一个整数作为输入。现在,每当我要求用户输入一个值(例如,他们可以输入“3hrs 2mins 1s”)时,我都想得到数字;但那不是问题。问题是我不知道如何去掉这些词,比如去掉“hrs”这样我就可以只取数字(最终我不得不把它转换成一个整数)。有任何想法吗?希望我说清楚了。

您可以使用正则表达式来仅匹配数字。使用 re.findall() 您可以获得与给定正则表达式匹配的结果列表。

import re

user_input = '11hrs 2mins 1s'           # You can use `input()`
time = re.findall('\d+', user_input)    # Find all results
time = [int(i) for i in time]           # Convert each of the numbers to digits

print(time)

这里,\d表示任意数字,+表示出现不止一次。因此,使用 findall() 函数,您可以获得字符串中捕获的数字列表。

输出


[11, 2, 1]