正则表达式操作修改字符串

时间:2014-12-02 14:05:54

标签: python regex

目前我的字符串类似于:

mytime = '143456.45674'

该字符串给出时间:

%HH%MM:%SS . something else

我只对HH:MM:SS格式感兴趣,所以我可以这样做:

mynewTime = mytime[0:2]+":"+mytime[2:4]+":"+mytime[4:6]
'14:34:56'

这有点难看,我想知道是否有一种更优雅/更有效的方法。也许是正则表达式?

3 个答案:

答案 0 :(得分:5)

看起来您正在寻找strptimestrftime的组合:

import datetime

mytime = '143456.45674'

ts = datetime.datetime.strptime(mytime, '%H%M%S.%f')
print ts.strftime('%H:%M:%S')

# 14:34:56

答案 1 :(得分:1)

正则表达式的乐趣:)

re.sub(r"(\d{2})(\d{2})(\d{2})\.\d+", r"\1:\2:\3", mytime)

答案 2 :(得分:1)

如果你想在正则表达式中这样做

>>> import re
>>> val=re.sub(r"\..*$", "", "143456.45674")
>>> re.sub(r"(?<=\d)(?=(\d{2})+$)", ":", val )
'14:34:56'