Поле ready
Поле ready класса smatch показывает,
был ли успешным поиск соответствия регулярному
выражению. Если соответствие было найдено, поле
содержит true, а если нет - false.
Это поле не принимает параметров и доступно только
для чтения. Его удобно использовать для проверки
результата работы функций regex_search и
regex_match перед обращением к найденным
совпадениям.
Синтаксис
smatch res;
res.ready
Пример
Давайте выполним поиск и проверим поле ready
после успешного совпадения:
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
regex reg("bcd");
smatch res;
regex_search(str, res, reg);
if (res.ready) {
cout << "Match found" << endl;
} else {
cout << "Match not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Match found"
Пример
А теперь давайте проверим поле ready, когда
совпадение не было найдено:
#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.ready) {
cout << "Match found" << endl;
} else {
cout << "Match not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Match not found"