@ Espo: Я просто должен сказать, что регулярное выражение невероятно. Я не хотел бы писать код, который помог бы с совпадениями, например, если вы хотите узнать, какую дату и время набрал пользователь.
Похоже, что решение Тома было бы более надежным, поскольку оно примерно в миллион раз проще, и с добавлением некоторых скобок вы можете легко получить значения, введенные пользователем:
(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})
Если вы используете Perl, вы можете получить значения примерно так:
$year = $1;
$month = $2;
$day = $3;
$hour = $4;
$minute = $5;
$second = $6;
Другие языки будут иметь аналогичные возможности. Обратите внимание, что вам нужно будет внести некоторые второстепенные моды в регулярное выражение, если вы хотите принимать значения, например месячные, состоящие из одной цифры.