Skip to main content
 首页 » 编程设计

Python 正则表达式小时到分钟

2025年05月04日36jiqing9006

我有一堆以小时为单位的字符串,我想将其转换为分钟

一些示例输入字符串:

50 hour 
5 hrs 
3 hours 
5hrs 
1hour 

我正在尝试提出一些正则表达式来捕获所有这些并将整个事物转换为分钟值的整数

上面会变成:

3000 
300 
180 
300 
60 

我不太熟悉正则表达式。我开始玩这样的东西:

re.sub(r'^\d+[a-z]', 'blah', string) 

然而,这似乎并没有引起多少注意。只有一个数字后跟一个字母的情况。此外,我不确定如何实际转换为分钟

请您参考如下方法:

re.sub可以接受替换函数而不是替换字符串。该函数将与匹配对象一起调用,函数的返回值用作替换字符串。

>>> import re 
>>>  
>>> strings =[ 
...     '50 hour', 
...     '5 hrs', 
...     '3 hours', 
...     '5hrs', 
...     '1hour', 
... ] 
>>>  
>>> for original in strings: 
...     replaced = re.sub(r'(\d+)\s*(?:hours?\b|hrs?\b)', 
...                       lambda m: str(int(m.group(1)) * 60), 
...                       original) 
...     print('{} => {}'.format(original, replaced)) 
...  
50 hour => 3000 
5 hrs => 300 
3 hours => 180 
5hrs => 300 
1hour => 60