Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpRgGB 3 of 696 menu
◀ ▶

Группирующие скобки в регулярках в C++

В предыдущих примерах операторы повторения действовали только на один символ, который стоял перед ними. Что делать, если нужно подействовать им на несколько символов?

Для этого существуют группирующие скобки '(' и ')'. Они работают так: если что-то стоит в группирующих скобках и сразу после ')' стоит оператор повторения - он подействует на все, что стоит внутри скобок.

В следующем примере шаблон поиска выглядит так: буква 'x', далее строка 'ab' один или более раз, потом буква 'x':

std::string txt = "xabx xababx xaabbx" std::regex re(R"rx(x(ab)+x)rx"); std::string res = std::regex_replace(txt, re, "!"); std::cout << res << "\n";

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

'! ! xaabbx'

Дана строка:

std::string txt = "ab abab abab abababab abea"

Напишите регулярку, которая найдет строки по шаблону: строка 'ab' повторяется 1 или более раз.

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