名前空間
変種
操作

std::match_results

提供: cppreference.com
< cpp‎ | regex
 
 
正規表現ライブラリ
クラス
(C++11)
match_results
(C++11)
アルゴリズム
イテレータ
例外
特性
定数
(C++11)
正規表現の文法
 
 
ヘッダ <regex> で定義
template<

    class BidirIt,
    class Alloc = std::allocator<std::sub_match<BidirIt>>

> class match_results;
(1) (C++11およびそれ以降)
namespace pmr {

    template <class BidirIt>
    using match_results = std::match_results<BidirIt,
                              std::pmr::polymorphic_allocator<
                                  std::sub_match<BidirIt>>>;

}
(2) (C++17およびそれ以降)

クラステンプレート std::match_results は正規表現のマッチ結果を表す文字シーケンスのコレクションを保持します。

これは特殊なアロケータ対応コンテナです。 デフォルト作成するか、 std::regex_iterator から取得するか、 std::regex_searchstd::regex_match によって変更されることだけができます。 std::match_resultsstd::sub_match を保持し、それぞれの std::sub_match はマッチした元の文字シーケンス内を指すイテレータのペアであるため、元の文字シーケンスが破棄されたり、他の理由でイテレータが無効化されると、 std::match_results を検査することは未定義動作になります。

match_result に格納されている最初の sub_match (インデックス 0) は必ず、正規表現がマッチしたターゲットシーケンス内のマッチ全体を表し、以降の sub_match は、正規表現内の部分表現を区切る左丸括弧に順番に対応する部分表現のマッチを表します。

std::match_results は、比較関数のセマンティクスがコンテナ用に要求されるものと異なることを除き、定数 AllocatorAwareContainer および定数 SequenceContainer の要件を満たします。

目次

[編集] 型要件

-
BidirItBidirectionalIterator の要件を満たさなければなりません。
-
AllocAllocator の要件を満たさなければなりません。

[編集] 特殊化

一般的な文字型に対していくつかの特殊化が提供されます。

ヘッダ <regex> で定義
定義
std::cmatch std::match_results<const char*>
std::wcmatch std::match_results<const wchar_t*>
std::smatch std::match_results<std::string::const_iterator>
std::wsmatch std::match_results<std::wstring::const_iterator>
std::pmr::cmatch (C++17) std::pmr::match_results<const char*>
std::pmr::wcmatch (C++17) std::pmr::match_results<const wchar_t*>
std::pmr::smatch (C++17) std::pmr::match_results<std::string::const_iterator>
std::pmr::wsmatch (C++17) std::pmr::match_results<std::wstring::const_iterator>

[編集] メンバ型

メンバ型 定義
allocator_type Allocator
value_type std::sub_match<BidirIt>
const_reference const value_type&
reference value_type&
const_iterator 処理系定義 (ベースとなるコンテナに依存します)
iterator const_iterator
difference_type std::iterator_traits<BidirIt>::difference_type
size_type std::allocator_traits<Alloc>::size_type
char_type std::iterator_traits<BidirIt>::value_type
string_type std::basic_string<char_type>

[編集] メンバ関数

オブジェクトを構築します
(パブリックメンバ関数) [edit]
オブジェクトを破棄します
(パブリックメンバ関数) [edit]
内容を代入します
(パブリックメンバ関数) [edit]
紐付けられているアロケータを返します
(パブリックメンバ関数) [edit]
状態
結果が利用可能かどうか調べます
(パブリックメンバ関数)
サイズ
マッチが成功したかどうか調べます
(パブリックメンバ関数) [edit]
結果の状態を完全に確立したマッチの数を返します
(パブリックメンバ関数) [edit]
部分マッチの可能な最大数を返します
(パブリックメンバ関数) [edit]
要素アクセス
特定の部分マッチの長さを返します
(パブリックメンバ関数) [edit]
特定の部分マッチの最初の文字の位置を返します
(パブリックメンバ関数) [edit]
特定の部分マッチに対する文字シーケンスを返します
(パブリックメンバ関数) [edit]
指定された部分マッチを返します
(パブリックメンバ関数) [edit]
ターゲットシーケンスの先頭とマッチ全体の先頭の間の部分シーケンスを返します
(パブリックメンバ関数) [edit]
マッチ全体の終端とターゲットシーケンスの終端の間の部分シーケンスを返します
(パブリックメンバ関数) [edit]
イテレータ
部分マッチのリストの先頭を指すイテレータを返します
(パブリックメンバ関数) [edit]
部分マッチのリストの終端を指すイテレータを返します
(パブリックメンバ関数) [edit]
フォーマット
マッチ結果を出力用にフォーマットします
(パブリックメンバ関数) [edit]
変更
内容を入れ替えます
(パブリックメンバ関数) [edit]

[編集] 非メンバ関数

2つのマッチ結果の値を辞書的に比較します
(関数テンプレート) [edit]
std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]