python - 如何检查 python 字符串以查看它是否在 HH :MM time format? 中

标签 python regex time

在 python 中匹配 HH:MM 时间格式的正则表达式是什么? 我在用

def is_time(self, str):
    reg = re.compile(r'[1-9]|1[0-2]:[0-9]{2}')

    if re.match(reg, str):
        return True
    else:
        return False

我也试过:

reg = re.compile(r'^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$')

但我不断得到

TypeError: %d format: a number is required, not str

我收到该错误是有道理的,因为我正在检查字符串中的数字,但我不确定如何修复它。任何帮助将不胜感激。

最佳答案

您可能应该使用 datetime.strptime

>>> import datetime

>>> datetime.datetime.strptime('12:34', '%H:%M')
datetime.datetime(1900, 1, 1, 12, 34)

>>> datetime.datetime.strptime('99:99', '%H:%M')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '99:99' does not match format '%H:%M'

关于python - 如何检查 python 字符串以查看它是否在 HH :MM time format? 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17370145/

相关文章:

python - SQLAlchemy 中的多态所属关系?

python - 当列名包含破折号(连字符)时引用 pyodbc 中的行值

javascript - 用连字符和/或撇号匹配单词的正则表达式

javascript - 如何在字符串中搜索第一次出现的 ":/",然后搜索找到的子字符串(包括 ":/")的所有其他出现?

正则表达式 - 如何匹配没有特定前缀的内容?

Java时间问题

python - 为什么对于非常大的数字,除法会变得更快

python - 可以从命名空间对象生成自动完成吗?

python - 选择合适的标签传递给 BeautifulSoup 的 select 方法

java - 将分钟数格式化为时间