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;
}
xxxxxxxxxx
#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++: ??