std::regex из заголовка #include.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpRgInr 1 of 696 menu
▶

Введение в регулярные выражения в C++

Регулярное выражение - это текстовый шаблон для поиска, проверки и замены фрагментов строки. В C++ с шаблонами работает тип std::regex из заголовка #include <regex>: объект шаблона создают из строки с образцом.

Шаблон состоит из обычных символов, которые совпадают сами с собой, и специальных символов - коротких команд вроде точки или звездочки. Специальные символы задают классы символов, повторения и границы текста.

Замену по шаблону выполняет функция std::regex_replace: передают исходную строку, объект std::regex и строку, на которую нужно заменить каждое совпадение. Простейший пример выглядит так:

std::regex re(R"(a)"); std::string res = std::regex_replace("bab", re, "!"); std::cout << res << "\n";

Результат выполнения кода:

b!b

Буквы и цифры в шаблоне обозначают те же символы в тексте. Заменим цифру 2 на "!":

std::regex re(R"(2)"); std::string res = std::regex_replace("12abc3", re, "!"); std::cout << res << "\n";

Точка в шаблоне - специальный символ: она обозначает любой один символ. Найдем фрагмент по шаблону буква "x", любой символ, буква "x" и заменим его на "!":

std::regex re(R"(x.x)"); std::string res = std::regex_replace("xax eee", re, "!"); std::cout << res << "\n";

Дана строка:

std::string txt = "ahb acb aeb aeeb adcb axeb"

Напишите регулярку, которая найдет строки "ahb", "acb", "aeb" по шаблону: буква "a", любой символ, буква "b".

Дана строка:

std::string txt = "aba aca aea abba adca abea"

Напишите регулярку, которая найдет строки "abba", "adca", "abea" по шаблону: буква "a", 2 любых символа, буква "a".

Дана строка:

std::string txt = "aba aca aea abba adca abea"

Напишите регулярку, которая найдет строки "abba" и "abea", не захватив "adca".

→
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить