2016-02-15 3 views
6
год

Я хотел бы знать, как соответствовать дате, как этот «21 окт 2014» или «21 октября 2014»Regex чтобы соответствовать дате, как месяц Именины запятой и

То, что я сделал до сих пор является \b(?:Jan?|?:Feb?|?:Mar?|?:Apr?|?:May?|?:Jun?|?:Jul?|?:Aug?|?:Sep?|?:Oct?|?:Nov?|?:Dec?) [0-9]{1,2}[,] (?:19[7-9]\d|2\d{3})(?=\D|$) но не поймите меня везде

  • на короткий мне нужно мое соответствие строка будет: «месяц [пробел] День [запятая] [пробел] Год» и я не забочусь о високосных и дни месяца должны быть от 1 до 31 без указания 0
  • Мне нужно это регулярное выражение для работы на python
+1

Вы можете добавить все возможные строки ввода, как действительные, так и недействительные – Tushar

+1

Также вы должны добавить полный код не '...' – Tushar

+1

Держу пари, вы забыли: 1) разделители регулярных выражений, 2) двойные обратные косые черты, 3) протестируйте его на [regex101.com] (http://regex101.com). На каком языке он написан? Что такое аромат регулярного выражения? –

ответ

13

Этот номер может содержать.

Имейте в виду, однако, что вы будете нуждаться в более сложных проверок, таких как проверка количества дней, в течение определенного месяца (скажем, февраль может быть только до 28 дней (29 в bissext лет), и так далее)

(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\s+\d{1,2},\s+\d{4} 

Играйте с этим here.

Опять же, это, безусловно, очень простое регулярное выражение, и у вас должно быть много лучших решений, но, возможно, этого может быть достаточно для ваших нужд, я не знаю.

+0

Это соответствует полному имени, должное (\ w +) ?. См. Ссылку. Я имею в виду, что валидация определенно плохая, потому что Janaaaaa будет соответствовать. Изменит его. – Veverke

+0

Альтернативы, которые используют один и тот же префикс, замедляют выполнение кода с помощью этого регулярного выражения. Если входная строка коротка, это нормально, если она длинная, это может быть проблемой. Это хорошая идея заключить контракт так, как это делает OP. –

+0

Да, Wiktor, это определенно не соответствует производительности. Опять же, просто хотел оставить что-то ОП. Не понял, что вы имели в виду с «хорошей идеей», чтобы договориться с ней так, как это делает OP ». – Veverke

Смежные вопросы