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

Поле size класса smatch

Поле size класса smatch возвращает количество найденных совпадений, которые были получены в результате работы алгоритма regex_match или regex_search. Поле не принимает параметров и возвращает значение типа size_t. Оно удобно для перебора всех найденных совпадений в цикле.

Синтаксис

smatch_name.size()

Пример

Давайте найдем все совпадения с шаблоном "\\d+" в строке и выведем их количество:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "12345 abcde 67890"; regex pattern("\\d+"); smatch matches; if (regex_search(str, matches, pattern)) { cout << matches.size() << endl; } return 0; }

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

1

Пример

Давайте найдем все числа в строке с помощью sregex_iterator и выведем общее количество найденных совпадений:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "12345 abcde 67890"; regex pattern("\\d+"); sregex_iterator it(str.begin(), str.end(), pattern); sregex_iterator end; int count = 0; for (; it != end; ++it) { count += it->size(); } cout << count << endl; return 0; }

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

2

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

  • класс smatch,
    который хранит результаты поиска по регулярному выражению
  • метод str,
    который возвращает найденную подстроку
  • метод position,
    который возвращает позицию найденного совпадения
  • метод length,
    который возвращает длину найденного совпадения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить