регулярное выражение Python соответствует и заменяет даты - PullRequest
0 голосов
/ 26 апреля 2011

Мне нужно сопоставить даты в форме:

10 января 2012 г.

И заменить в форме:

10 января 2012

Вот что у меня есть:

        pattern = re.findall(r'(?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d\d,\s\d{4}', text)
        print pattern

Как мне заменить?

Ответы [ 2 ]

5 голосов
/ 26 апреля 2011

Используйте 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'
0 голосов
/ 26 апреля 2011

В общем, как-то так:

найти: ^(January) (\d{1,2}), (\d{4})$ заменить $2 $1 $3

...