公共成员函数
<regex>

std::match_results::empty

bool empty() const;
测试对象是否没有匹配项
返回值true如果match_results对象不包含任何匹配项。

当对象是默认构造的,则此值初始化为true。如果调用regex_matchregex_search,其中match_results对象作为参数找到至少一个匹配项,则此值设置为false。如果没有找到匹配项,则设置为true.

要检查对象是否已被其中一个函数填充(不区分模式是否成功匹配),可以使用match_results::ready

参数



返回值

true如果对象不包含任何匹配项。false如果至少包含一个。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// match_results::empty
// - using smatch, a standard alias of match_results<string::iterator>
#include <iostream>
#include <string>
#include <regex>

int main ()
{
  using namespace std::regex_constants;

  std::string s ("Subject");
  std::regex e1 ("sub.*");
  std::regex e2 ("sub.*", ECMAScript | icase);

  std::smatch m1,m2;

  std::regex_match ( s, m1, e1 );
  std::regex_match ( s, m2, e2 );

  std::cout << "e1 " << ( m1.empty() ? "did not match" : "matched" ) << std::endl;
  std::cout << "e2 " << ( m2.empty() ? "did not match" : "matched" ) << std::endl;

  return 0;
}

输出
e1 did not match
e2 matched


另见