std::match_results
ヘッダ <regex> で定義 | ||
template< class BidirIt, | (1) | (C++11以上) |
namespace pmr { template<class BidirIt> | (2) | (C++17以上) |
クラステンプレート std::match_results は正規表現のマッチ結果を表す文字シーケンスのコレクションを保持します。
これは特殊なアロケータ対応コンテナです。 デフォルト作成するか、 std::regex_iterator から取得するか、 std::regex_search や std::regex_match によって変更されることだけができます。 std::match_results
は std::sub_match を保持し、それぞれの std::sub_match はマッチした元の文字シーケンス内を指すイテレータのペアであるため、元の文字シーケンスが破棄されたり、他の理由でイテレータが無効化されると、 std::match_results
を検査することは未定義動作になります。
match_result
に格納されている最初の sub_match
(インデックス 0) は必ず、正規表現がマッチしたターゲットシーケンス内のマッチ全体を表し、以降の sub_match
は、正規表現内の部分表現を区切る左丸括弧に順番に対応する部分表現のマッチを表します。
std::match_results
は、コピー代入、ムーブ代入および定数コンテナ用に定義された演算子のみがサポートされることと、比較関数のセマンティクスがコンテナ用に要求されるものと異なることを除き、 AllocatorAwareContainer および SequenceContainer の要件を満たします。
目次 |
[編集]型要件
-BidirIt は LegacyBidirectionalIterator の要件を満たさなければなりません。 | ||
-Alloc は Allocator の要件を満たさなければなりません。 |
[編集]特殊化
一般的な文字型に対していくつかの特殊化が提供されます。
ヘッダ <regex> で定義 | |
型 | 定義 |
std::cmatch | std::match_results<constchar*> |
std::wcmatch | std::match_results<constwchar_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<constchar*> |
std::pmr::wcmatch (C++17) | std::pmr::match_results<constwchar_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> |
[編集]メンバ関数
オブジェクトを構築します (パブリックメンバ関数) | |
オブジェクトを破棄します (パブリックメンバ関数) | |
内容を代入します (パブリックメンバ関数) | |
紐付けられているアロケータを返します (パブリックメンバ関数) | |
状態 | |
結果が利用可能かどうか調べます (パブリックメンバ関数) | |
サイズ | |
マッチが成功したかどうか調べます (パブリックメンバ関数) | |
結果の状態を完全に確立したマッチの数を返します (パブリックメンバ関数) | |
部分マッチの可能な最大数を返します (パブリックメンバ関数) | |
要素アクセス | |
特定の部分マッチの長さを返します (パブリックメンバ関数) | |
特定の部分マッチの最初の文字の位置を返します (パブリックメンバ関数) | |
特定の部分マッチに対する文字シーケンスを返します (パブリックメンバ関数) | |
指定された部分マッチを返します (パブリックメンバ関数) | |
ターゲットシーケンスの先頭とマッチ全体の先頭の間の部分シーケンスを返します (パブリックメンバ関数) | |
マッチ全体の終端とターゲットシーケンスの終端の間の部分シーケンスを返します (パブリックメンバ関数) | |
イテレータ | |
部分マッチのリストの先頭を指すイテレータを返します (パブリックメンバ関数) | |
部分マッチのリストの終端を指すイテレータを返します (パブリックメンバ関数) | |
フォーマット | |
マッチ結果を出力用にフォーマットします (パブリックメンバ関数) | |
変更 | |
内容を入れ替えます (パブリックメンバ関数) |
[編集]非メンバ関数
(C++20で削除) | 2つのマッチ結果内の値を辞書的に比較します (関数テンプレート) |
std::swap アルゴリズムの特殊化 (関数テンプレート) |