std::basic_regex<CharT,Traits>::mark_count
提供: cppreference.com
<tbody>
</tbody>
unsigned mark_count() const; |
(C++11以上) | |
正規表現内のマーク付き部分表現 (キャプチャグループとも言います) の数を返します。
引数
(なし)
戻り値
正規表現内のマーク付き部分表現の数。
例外
(なし)
例
Run this code
#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