首先,我正在制作某种计时器(你会知道我为什么这么说(。我有一个类,每个参数都以一个整数作为输入。现在,每当我要求用户输入一个值(例如,他们可以输入"3小时2分1秒"(时,我都想得到数字;但事实并非如此。问题是,我知道我该如何摆脱那些词,比如摆脱";小时";所以我可以只取这个数字(最终我必须将其转换为int(。有什么想法吗?希望我是清白的。
您只能使用正则表达式来匹配数字。使用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]