2014-12-02 2 views
0

В настоящее время у меня есть строка, аналогичную: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' 

это немного некрасиво, и мне было интересно, если есть более элегантный/эффективный способ Делать это. Возможно, Regex?

ответ

5

Похоже, что вы ищете сочетание strptime и strftime:

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' 
Смежные вопросы