const tr1::regex rx("^(((0[1-9]|[12]\d|3[01])\.(0[13578]|1[02])\.((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\.(0[13456789]|1[012])\.((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\.02\.((19|[2-9]\d)\d{2}))|(29\.02\.((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$");
tr1::smatch xResults;
bool res = false;
while (!res) {
system("cls");
cout << Lang::lang[31];
getline(cin, temp);
res = regex_match(temp,rx);
}
Не могу понять почему не работает следующий код. В res всегда false. Тестил отдельно на сайте регулярное выражение, работает норм. В строке тоже всё нормально.
Для начала не пробовали вспомнить о том, что в C/C++ обратная косая черта в строке - служебный символ, так что \d надо записывать как \\d?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники