最終更新日時: 2024年07月19日 01時39分47秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<regex>

# std::basic_regex::mark_count(C++11)

    unsigned int mark_count() const;

## 概要

正規表現内のキャプチャグループの数を返す。

## 戻り値

正規表現内のキャプチャグループの数

## 備考

キャプチャグループとは、正規表現内の丸カッコで囲まれた部分の事である。
キャプチャグループは、その正規表現内の後方や、`regex_replace` による置換時などに使用することができる。
また、`match_results` オブジェクトを使用することによって、`regex_match` や `regex_search` 等の結果として受け取ることもできる。
その場合、キャプチャグループに対応する部分は `match_results` オブジェクトのメンバ関数で `sub_match` オブジェクトとして（`operator[]`）、あるいは文字列として（`str`）アクセス可能である。
なお、`this->flags()` に `regex_constants::nosubs` が含まれている場合は、キャプチャグループは無効となるため、本関数の戻り値は `0` となる。

## 例

    #include <iostream>
    #include <regex>

    int main()
    {
      std::regex re("(\\w+) (\\d+) (\\w+)");
      std::cout << re.mark_count() << std::endl;
    }

### 出力

    3

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅, 3.1 ✅, 3.2 ✅, 3.3 ✅, 3.4 ✅, 3.5 ✅, 3.6 ✅
- GCC: 4.9.0 ✅, 4.9.1 ✅, 4.9.2 ✅, 5.0.0 ✅
- ICC: ??
- Visual C++: ??