Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
448 of 824 menu
◀ ▶

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

Поле empty класса smatch возвращает булево значение true, если объект smatch не содержит результатов успешного поиска совпадений (то есть поиск не был выполнен или завершился неудачей), и false, если объект содержит хотя бы одно найденное совпадение. Это поле не принимает параметров и доступно только для чтения. Проверка empty обычно выполняется перед обращением к элементам объекта smatch, чтобы избежать ошибок доступа к несуществующим совпадениям.

Синтаксис

smatch_name.empty

Пример

Давайте выполним поиск и проверим, содержит ли объект smatch результаты совпадений, с помощью поля empty:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "abcde"; regex reg("cd"); smatch res; regex_search(str, res, reg); if (!res.empty()) { cout << "Match found: " << res[0] << endl; } else { cout << "No match" << endl; } return 0; }

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

"Match found: cd"

Пример

Давайте выполним поиск шаблона, который не встречается в строке, и убедимся, что поле empty вернёт true:

#include <iostream> #include <regex> #include <string> using namespace std; int main() { string str = "abcde"; regex reg("xyz"); smatch res; regex_search(str, res, reg); if (res.empty()) { cout << "No match" << endl; } else { cout << "Match found: " << res[0] << endl; } return 0; }

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

"No match"

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

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