std::match_results<BidirIt,Alloc>::ready

来自cppreference.com
< cpp‎ | regex‎ | match results
bool ready() const;
(C++11 起)

指示匹配结果是否就绪(合法)。

默认构造的匹配结果无结果状态(未就绪),而且只能由正则表达式算法之一变为就绪。就绪 状态意味着已经完全建立了所有匹配结果。

在未就绪 的匹配结果对象上调用大多数成员函数的结果未定义。

返回值

若匹配结果就绪则为 true,否则为 false

示例

#include <iostream>
#include <regex>
#include <string>
 
int main()
{
    std::string target("pattern");
    std::smatch sm;
    std::cout << "默认构造的 smatch 为 "
              << (sm.ready() ? " 就绪\n" : " 未就绪\n");
 
    std::regex re1("tte");
    std::regex_search(target, sm, re1);
 
    std::cout << "搜索之后, smatch 为 "
              << (sm.ready() ? " 就绪\n" : " 未就绪\n");
}

输出:

默认构造的 smatch 为  未就绪
搜索之后, smatch 为  就绪