#python #regex #datetime #date
#python #регулярное выражение #дата-время #Дата
Вопрос:
Мне нужно сопоставить даты в форме:
10 января 2012
И замена в форме:
10 Января 2012
Вот что у меня есть на данный момент:
pattern = re.findall(r'(?:January|February|March|April|May|June|July|August|September|October|November|December)sdd,sd{4}', text)
print pattern
Как мне заменить?
Комментарии:
1. Что вы пробовали? Пожалуйста, опубликуйте свой код и любые конкретные проблемы, с которыми вы столкнулись.
2. @Doug T. — Даже если это не так, это все равно не приемлемый вопрос. В нынешнем виде вопрос звучит так: «Я не знаю регулярных выражений, напишите одно для меня».
3. Да, мне нужна помощь в преобразовании из формы от 10 января 2012 года в форму от 10 января 2012 года
4. @michael: «заменить» — это совершенно неправильная концепция. Вы просто форматируете выходные данные.
Ответ №1:
Используется strptime()
для анализа даты и strftime()
для генерации новой строки. В этом случае нет причин использовать регулярное выражение.
In [1]: import time
In [2]: tm = time.strptime('January 10, 2012', '%B %d, %Y')
In [3]: time.strftime('%d %B %Y', tm)
Out[4]: '10 January 2012'
Ответ №2:
В общем, что-то вроде этого:
найти: ^(January) (d{1,2}), (d{4})$
заменить $2 $1 $3