如何从 Python 中的字符串中提取时间

How to extract time from string in Python

我正在开发一个程序,我试图在字符串中找到时间。 时间格式应为军用格式。喜欢,

10:30 or 23:20

一个例子:

a = 'set reminder for 10:45'
b = 'set reminder for 17:50'

结果应该是这样的,

a = '10:45'
b = '17:50'

如何实现这些结果?使用 re 对我来说没有意义,因为如果我们在这个 : 标志之前和之后还有另一个 : 标志,我们不会得到错误吗?

可以在这里使用re:

>>> re.search(r'\b\d?\d:\d\d\b', 'set reminder for 10:45').group(0)
'10:45'

此处使用的正则表达式有效 the following way:

  • \b 匹配单词边界(避免匹配 abc12:101234:56
  • \d 匹配一个数字(几十小时),? 使该匹配可选(因为小时可能只有一个数字)
  • \d 匹配一个数字(小时数)
  • : 匹配冒号
  • \d匹配一个数字(几十分钟)
  • \d 匹配一个数字(分钟)
  • \b 匹配单词边界(避免匹配 12:10abc12:3456