2014-12-02 40 views
0

目前我有类似的字符串:正则表达式操作修改字符串

mytime = '143456.45674' 

该字符串是给时间:

%HH%MM:%SS . something else 

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

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

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

回答

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

一个正则表达式版本的乐趣:)

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

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

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