名前空間
変種
操作

std::basic_regex<CharT,Traits>::mark_count

提供: cppreference.com
< cpp‎ | regex‎ | basic regex
unsigned mark_count()const;
(C++11以上)

正規表現内のマーク付き部分表現 (キャプチャグループとも言います) の数を返します。

目次

[編集]引数

(なし)

[編集]戻り値

正規表現内のマーク付き部分表現の数。

[編集]例外

(なし)

[編集]

#include <iostream>#include <regex>   int main(){std::regex r1{"abcde"};std::cout<<"r1 has "<< r1.mark_count()<<" subexpressions"<<'\n';// 結果: 0   std::regex r2{"ab(c)de"};std::cout<<"r2 has "<< r2.mark_count()<<" subexpressions"<<'\n';// 結果: 1   std::regex r3{"a(bc)d(e)"};std::cout<<"r3 has "<< r3.mark_count()<<" subexpressions"<<'\n';// 結果: 2   // ネストした部分表現。std::regex r4{"abc(de(fg))"};std::cout<<"r4 has "<< r4.mark_count()<<" subexpressions"<<'\n';// 結果: 2   // エスケープされた括弧。std::regex r5{"a(bc\\(\\)de)"};std::cout<<"r5 has "<< r5.mark_count()<<" subexpressions"<<'\n';// 結果: 1   // nosubs フラグの使用。std::regex r6 {"ab(c)de", std::regex_constants::nosubs};std::cout<<"r6 has "<< r6.mark_count()<<" subexpressions"<<'\n';// 結果: 0}

出力:

r1 has 0 subexpressions r2 has 1 subexpressions r3 has 2 subexpressions r4 has 2 subexpressions r5 has 1 subexpressions r6 has 0 subexpressions
close