Чтобы быть чрезмерно педантичным, этому регулярному выражению соответствует: 22-NOV-09
.
Если вместо этого вы хотите проверить, является ли данная строка датой проверки в определенном формате, я бы рекомендовал использовать что-то вроде strptime
. Например:
#define _XOPEN_SOURCE
#include <time.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
struct tm tm;
char *p;
p = strptime(argv[1], "%d-%b-%y", &tm);
if (p && *p == '\0') {
printf("Matches\n");
return 0;
}
else {
printf("Didn't match\n");
return 1;
}
}
Python имеет datetime.datetime.strptime
, а Perl имеет POSIX::strptime
. Я уверен, что большинство других языков также имеют доступ к этой функции.