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

Python正则表达式提取文件名中_time_date_格式的时间戳

解决Python正则提取完整时间戳的问题

嘿,作为Python新手遇到正则匹配的小问题太正常啦,我来帮你调整下正则表达式就搞定!

你之前写的re.search(r"\d+_(\d+)_", filename)只拿到日期部分,是因为你把捕获括号只加在了日期的\d+外面,相当于只抓取了第二个数字段。而你要的是0800_20180102这种包含时间+日期的完整戳,得把时间+下划线+日期这一整块内容放进捕获组里才行。

正确的正则写法

直接用这个代码试试:

import re

# 测试第一个文件名
filename1 = "test_0800_20180102_filepath.csv"
match1 = re.search(r"_(\d+_\d+)_", filename1)
if match1:
    print(match1.group(1))  # 输出: 0800_20180102

# 测试第二个文件名
filename2 = "anotherone_0800_20180101_hello.csv"
match2 = re.search(r"_(\d+_\d+)_", filename2)
if match2:
    print(match2.group(1))  # 输出: 0800_20180101

正则逻辑解释

  • _:匹配文件名里的下划线,用来精准定位时间戳的前后边界
  • (\d+_\d+):这是我们要捕获的核心内容
    • \d+:匹配一个或多个数字(对应时间部分,比如0800)
    • _:匹配时间和日期之间的分隔下划线
    • \d+:匹配日期部分的数字(比如20180102)
  • 最后一个_:匹配时间戳末尾的下划线,确保我们取的是两个下划线之间的完整内容

这样调整后,就能完美提取你想要的完整时间戳啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:50:38