public member function
<regex>

std::match_results::str

string_type str (size_type n = 0) const;
将匹配项作为字符串返回
返回一个string,其中包含match_results对象中第n个匹配项的内容,该对象是ready的。

以下返回的对象str是属于basic_stringcorresponding to the type of the characters in the target sequence, even if the match_results object is filled using other types of character sequences, like the C-strings used incmatch.

match_results对象应为ready,这在将其作为正确参数传递给regex_matchregex_search的调用时发生。

此函数返回的内容与nsub_match元素的str成员相同。

参数

n
匹配编号。 此编号应低于match_results::size
匹配编号0表示整个匹配的表达式。 如果有任何子表达式,则后续的匹配编号标识这些子表达式。
成员类型size_type是一种无符号整型类型。

返回值

具有第n个匹配项的string对象。

string_type是一种成员类型,定义为basic_string对应于正在迭代的字符的类型,别名是BidirectionalIterator(模板类型)。 也就是说,对于迭代所有对象的stringchars(如cmatchsmatch).

示例

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

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

  std::cmatch m;

  std::regex_match ( "subject", m, std::regex("(sub)(.*)") );

  std::string output = "matches:\n";
  for (unsigned i=0; i<m.size(); ++i) {
    output+= m.str(i) + "\n";
  }

  std::cout << output << std::endl;

  return 0;
}

输出
matches:
subject
sub
ject


另见