Простые группы регулярных выражений Python не могут разобрать дату - PullRequest
1 голос
/ 17 октября 2010

Я пытаюсь разобрать даты с помощью регулярных выражений, используя группы, но python возвращает пустые списки.Я не делаю ничего фантастического, просто что-то вроде 25.12.10.Я хочу, чтобы он отклонил 12 / 25-10, хотя.

date = re.compile("\d{1,2}([/.-])\d{1,2}\1\d{2}")

Я пробовал онлайн-библиотеки регулярных выражений, но их решения, похоже, тоже не работают.Есть идеи?

Пример ввода: «Здравствуйте, сегодня 10/10/10, а время 10:50». Надеемся на вывод: «10/18/10»

Я бегуPython 2.5.

Ответы [ 3 ]

5 голосов
/ 17 октября 2010

Вы должны использовать встроенный Python strptime .

5 голосов
/ 17 октября 2010

Использовать необработанную строку:

date = re.compile(r"\d{1,2}([/.-])\d{1,2}\1\d{2}")

В противном случае \1 в строковом литерале интерпретируется как символ 1 (начало заголовка).

РЕДАКТИРОВАТЬ: Чтобы добавить группы для компонентов даты, используйте:

re.compile(r"(\d{1,2})([/.-])(\d{1,2})\2(\d{2})")
2 голосов
/ 17 октября 2010

Без сомнения, перебор, но библиотека "parsedatetime" работает для меня: http://code.google.com/p/parsedatetime/

Он использует регулярные выражения внутри, но гораздо больше, чем анализ форматов MM / DD / YY.

...