# std::match_results<BidirIt,Alloc>::operator[]

< cpp‎ | regex‎ | match results

const_reference operator[]( size_type n ) const; |  | (C++11 起)

若 n > 0 且 n < size() ，则返回到 std::sub_match 的引用，它表示第 n 个捕获的有标记子表达式所匹配的目标序列部分。

若 n == 0 ，则返回到 std::sub_match 的引用，它表示返回整个匹配的正则表达式所匹配的目标序列部分。

若 n >= size() ，则返回到 std::sub_match 的引用，它表示不配的子表达式（目标序列的空子范围）。

除非 ready() == true ，否则行为未定义。

### 参数

n | - | 指定要返回哪个匹配的整数

### 返回值

返回到表示目标序列中指定的匹配子范围的 std::sub_match 的引用。

### 示例

    #include <iostream>
    #include <regex>
    #include <string>

    int main()
    {
        std::string target("baaaby");
        std::smatch sm;

        std::regex re1("a(a)*b");
        std::regex_search(target, sm, re1);
        std::cout << "entire match: " << sm[0] << '\n'
                  << "submatch #1: " << sm[1] << '\n';

        std::regex re2("a(a*)b");
        std::regex_search(target, sm, re2);
        std::cout << "entire match: " << sm[0] << '\n'
                  << "submatch #1: " << sm[1] << '\n';

    }

输出：

    entire match: aaab
    submatch #1: a
    entire match: aaab
    submatch #1: aa

### 参阅

str | 返回特定子匹配的字符序列 (公开成员函数)