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

Python中如何用正则将hh:mm:ss时间格式转换为hh:mm格式

正确实现方法

你的需求可以通过正则分组捕获实现,只匹配hh:mm:ss格式的字符串,捕获前半段hh:mm直接替换即可,原有hh:mm格式的内容不会被正则匹配,会原样保留。

1. 正则写法说明

使用正则:r'^(\d{2}:\d{2}):\d{2}$'

  • ^、$ 限定匹配完整字符串,避免误匹配
  • 括号()是分组,第一个分组捕获hh:mm部分
  • 末尾的:\d{2}匹配要去掉的秒字段
    替换的时候用r'\1',代表直接返回第一个分组的内容即可。

2. Pandas 中实现代码

更推荐直接用pandas内置的字符串替换方法,不需要写列表推导,性能更好:

import pandas as pd
import re

# 正则替换,只修改hh:mm:ss格式的内容
df['column_name'] = df['column_name'].str.replace(r'^(\d{2}:\d{2}):\d{2}$', r'\1', regex=True)

3. 效果验证

测试输入的样例内容处理后结果如下:

原内容处理后内容
00:00:0000:00
01:00:0001:00
05:0005:00
02:00:0002:00
06:0006:00

你的代码错误原因

  • 第一次尝试的错误:re.sub的第二个参数是普通字符串,你写的正则表达式会被当做普通文本直接替换,所以所有匹配到的内容都变成了正则字符串本身
  • 第二次尝试的错误:re.sub的第二个参数不能直接传入切片语法,语法不合法,会直接报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:54:05