Совпадение с начала строки в C++
Если шаблон должен совпасть только с началом
строки, в регулярке ставят символ ^.
После этого обычный поиск вернет результат
только тогда, когда подходящий фрагмент стоит
первым:
std::string txt = "123abc"
std::regex re(R"(^\\d+)");
std::smatch res;
std::regex_search(txt, res, re);
std::cout << res.str() << "\n";
Без символа ^ метод find ищет
первое совпадение в любой части текста:
std::string txt = "aaa 123 bbb"
std::regex re(R"(^\\d+)");
std::smatch res;
std::regex_search(txt, res, re);
std::regex re(R"(\d+)");
std::smatch res;
std::regex_search(txt, res, re);
std::cout << atStart << "\n";
std::cout << anywhere << "\n";
Дана строка:
std::string txt = "abc 123 bbb 456 987"
Проверьте совпадение букв в начале строки и выведите найденный фрагмент в консоль.
Дана строка:
std::string txt = "aaa bbb 123"
Найдите подстроку из цифр и выведите ее в консоль.