You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则表达式查找文本中所有「1401/07/29 19:00:00」格式内容

使用Python的re.findall查找特定日期时间格式的内容

要匹配「1401/07/29 19:00:00」这种格式的时间字符串,你可以构造对应的正则表达式,结合re.findall()方法批量提取目标内容。

基础匹配方案

如果仅需匹配格式(不校验日期时间的合法性,比如月份是否为1-12),可以用以下代码:

import re

# 示例文本
sample_text = "日志内容:1401/07/29 19:00:00 系统启动,1401/07/30 08:30:15 完成备份,1502/12/31 23:59:59 执行年度任务"

# 定义正则模式
time_pattern = r'\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}'

# 提取所有匹配的时间字符串
matched_times = re.findall(time_pattern, sample_text)

print(matched_times)
# 输出:['1401/07/29 19:00:00', '1401/07/30 08:30:15', '1502/12/31 23:59:59']

正则模式各部分说明:

  • \d{4}:匹配4位数字(对应年份)
  • \/:匹配字面斜杠(正则中/是特殊符号,需转义)
  • \d{2}:匹配两位数字(依次对应月份、日期、小时、分钟、秒)
  • :匹配日期与时间之间的空格
  • ::匹配字面冒号

严格校验的匹配方案

如果需要确保提取的日期时间合法(比如月份01-12、日期01-31、小时00-23、分钟/秒00-59),可以使用带非捕获组的正则:

import re

sample_text = "包含无效时间的文本:1401/13/32 25:61:62,有效时间:1401/07/29 19:00:00、1502/12/31 23:59:59"

# 严格匹配的正则模式(使用非捕获组(?:...)避免返回分组内容)
strict_time_pattern = r'\d{4}/(?:0[1-9]|1[0-2])/(?:0[1-9]|[12]\d|3[01]) (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d'

strict_matched_times = re.findall(strict_time_pattern, sample_text)

print(strict_matched_times)
# 输出:['1401/07/29 19:00:00', '1502/12/31 23:59:59']

这个模式会自动过滤格式错误的时间字符串,只保留合法结果。

内容的提问来源于stack exchange,提问作者Mohammadreza Taheri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:15:54