Если вы используете IPython, вам нужно ввести «foo ??»
In [19]: foo??
Signature: foo(arg1, arg2)
Source:
def foo(arg1,arg2):
#do something with args
a = arg1 + arg2
return a
File: ~/Desktop/<ipython-input-18-3174e3126506>
Type: function
Это будет соответствовать yyyy-mm-dd
, а также yyyy-m-d
:
^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$
Если вы ищете точное соответствие для yyyy-mm-dd
, то попробуйте это
^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$
или используйте это, если вам нужно найти дату в строке вроде The date is 2017-11-30
\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])*
Простым будет
\d{4}-\d{2}-\d{2}
, но это не ограничивает месяц 1-12 и дни с 1 по 31.
Есть более сложные проверки, как и в других ответах, кстати, довольно умные. Тем не менее, вы должны проверить правильность даты, потому что нет никаких проверок, если в месяце 28, 30 или 31 день.
Вы можете использовать это регулярное выражение, чтобы получить формат гггг-ММ-дд: ((?: 19 | 20) \ d \ d) - (0? [1-9] | 1 [012]) - ([12] [0-9] | 3 [01] | 0? [1-9])
Вы можете найти пример проверки даты: Как проверить дату с помощью регулярного выражения.
Вы можете проверить это выражение:
^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$
Описание:
проверяет дату гггг-мм-дд, гггг мм дд или гггг / мм / дд
удостоверяется, что день находится в допустимых пределах для месяца - НЕ проверяет 29 февраля в високосный год, только в том, что февраль может иметь 29 дней
Совпадения (проверено): 0001-12-31 | 9999 09 30 | 2002/03/03