Поиск совпадения в регулярках в C++
Функция std::regex_search
возвращает true, если в строке есть
хотя бы одно совпадение с шаблоном, и
false, если совпадений нет. Проверка
идет слева направо по всей строке:
std::string txt = "aaa 123 bbb";
std::regex re(R"(\d+)");
bool hasDigits = std::regex_search(txt, re);
std::cout << hasDigits << "\n";
Тот же вызов с объектом std::smatch
находит первое совпадение. Если подходящего
фрагмента нет, результат ложный. Текст
совпадения берут через m.str или m[0]:
std::string txt = "aaa 123 bbb 456";
std::regex re(R"(\d+)");
std::smatch res;
std::regex_search(txt, res, re);
std::cout << res.str() << "\n";
Дана строка:
std::string txt = "123 abc 456 cde";
Найдите первую подстроку из одних букв и выведите ее в консоль.
Дана строка:
std::string txt = "1 23 456 789";
Проверьте, есть ли в строке число из трех цифр подряд, и выведите результат в консоль.