РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
425 of 815 menu

Флаг format_first_only

Флаг format_first_only применяется вместе с функцией regex_replace и указывает ей заменить только первое найденное совпадение с регулярным выражением, а все последующие совпадения оставить без изменений. По умолчанию regex_replace заменяет все совпадения в строке, поэтому данный флаг используется, когда нужно ограничить замену одним первым вхождением.

Флаг имеет тип std::regex_constants::match_flag_type и передается в функцию regex_replace в качестве третьего параметра. Значение флага можно комбинировать с другими флагами через побитовое ИЛИ |.

Синтаксис

#include <regex> std::regex_replace(str, re, fmt, std::regex_constants::format_first_only)

Пример

Давайте заменим только первое вхождение слова "abc" на "X" в строке, где это слово встречается несколько раз:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "abc abc abc"; regex re("abc"); string res = regex_replace(str, re, "X", regex_constants::format_first_only); cout << res << endl; return 0; }

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

"X abc abc"

Пример

Давайте для сравнения выполним ту же замену без флага format_first_only и увидим, что заменяются все совпадения:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "abc abc abc"; regex re("abc"); string res = regex_replace(str, re, "X"); cout << res << endl; return 0; }

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

"X X X"

Пример

Давайте заменим только первое число в строке на символ '#', используя регулярное выражение для цифр:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "12345 67890 11111"; regex re("\\d+"); string res = regex_replace(str, re, "#", regex_constants::format_first_only); cout << res << endl; return 0; }

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

"# 67890 11111"

Смотрите также

  • функция regex_replace,
    которая заменяет совпадения в строке
  • функция regex_search,
    которая ищет первое совпадение в строке
  • функция regex_match,
    которая проверяет полное совпадение строки
  • флаг icase,
    который включает игнорирование регистра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить