如何让Python开发的Discord Bot匹配任意HH:MM格式时间?
解决Discord机器人响应任意HH:MM格式时间的问题
问题场景
我用Python开发的Discord机器人目前只有输入"00:00"时才会返回指定内容,代码如下:
if p_message == "00:00": return "TIME HAS BEEN SUBMITTED"
需要修改成能响应任意HH:MM格式的时间输入(比如11:11、03:11),要求仅接受数字组成的合法时间,同时不能影响已有的其他命令。之前尝试用random模块没解决问题,现在已经找到可行方案。
解决方案
使用正则表达式精准匹配合法的HH:MM格式,替换原有的精确字符串判断即可:
import re # 消息处理函数示例 def process_message(p_message): # 正则匹配00-23:00-59的时间格式 time_regex = r'^([01]\d|2[0-3]):([0-5]\d)$' if re.fullmatch(time_regex, p_message): return "TIME HAS BEEN SUBMITTED" # 原有其他命令的处理逻辑放在这里 # ...
关键说明
re.fullmatch()会检查整个输入字符串是否完全匹配正则规则,避免误判包含时间片段的其他内容- 正则表达式规则:
^和$限定匹配范围,确保输入只有时间,没有多余字符([01]\d|2[0-3])确保小时是00-23之间的合法数字([0-5]\d)确保分钟是00-59之间的合法数字
- 这个判断逻辑只会对符合格式的时间输入触发响应,不会干扰其他命令的正常执行
内容的提问来源于stack exchange,提问作者Cheddar Sun Chips
相关产品推荐
相关产品推荐

