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

Флаг regex::multiline

Флаг regex::multiline включает многострочный режим сопоставления в регулярных выражениях C++. В этом режиме символы '^' и '$' начинают обозначать не начало и конец всей строки, а начало и конец каждой строки внутри текста. Границей строк считается символ перевода строки '\n'. Этот флаг передается в параметр flags при создании объекта std::regex или при вызове функций сопоставления.

Синтаксис

std::regex::multiline

Пример

Давайте проверим, как флаг multiline влияет на поиск начала строки. Сначала попробуем без флага:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string text = "abcde\n12345"; regex re("^12345$"); if (regex_search(text, re)) { cout << "match" << endl; } else { cout << "no match" << endl; } return 0; }

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

"no match"

Без флага multiline символ '^' означает только начало всей строки, поэтому совпадения нет. Теперь добавим флаг multiline:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string text = "abcde\n12345"; regex re("^12345$", regex::multiline); if (regex_search(text, re)) { cout << "match" << endl; } else { cout << "no match" << endl; } return 0; }

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

"match"

Пример

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

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string text = "abcde\n12345\nxyz\n67890"; regex re("^\\d+", regex::multiline); for (sregex_iterator it(text.begin(), text.end(), re), end; it != end; ++it) { cout << it->str() << endl; } return 0; }

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

12345 67890

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

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