類模板
<regex>

std::match_results

template < class BidirectionalIterator,           class Alloc = allocator< sub_match<BidirectionalIterator> > >  class match_results;
匹配結果
一個類似容器的類,用於在*正則表示式匹配操作*後儲存目標字元序列中找到的匹配項,每個匹配項都是相應的sub_match型別。

它由regex_matchregex_searchregex_iterator自動填充匹配操作的結果。中的元素match_results物件被限定為const,因此不打算在這些函式之外修改。

構造時,match_results物件沒有結果狀態(即它們不是ready)。一旦它們在呼叫regex_matchregex_search時作為正確引數使用,它們就會獲得已建立的結果狀態,並變為ready(可以透過呼叫成員函式match_results::ready來檢查)。指向有效位置的regex_iterator的解引用值始終是ready

一旦ready,物件可以為空(empty)或非空(non-empty),具體取決於目標序列是否成功匹配表示式。如果成功,它不是空的(non-empty),並且包含一系列sub_match物件:第一個sub_match元素對應整個匹配,並且,如果regex表示式包含要匹配的子表示式(即括號分隔的組),則它們相應的子匹配儲存在match_results物件中作為連續的sub_match元素。

這些子匹配可以像match_results物件一樣被視為容器進行訪問,或者直接使用strlengthposition等成員進行訪問。

如果match_results如果使用regex_searchregex一起使用match_results物件,則可以使用prefixsuffix成員來訪問未匹配目標序列的部分。

物件match_results型別且ready的物件也可以使用成員函式match_results::format來使用它們包含的資訊format一個字元序列。

cmatchsmatch是這個類對於窄字元(char)的例項化。wcmatchwsmatch是它們各自的寬字元版本(wchar_t)。在<regex>標準標頭檔案中定義
1
2
3
4
typedef match_results<const char*> cmatch;
typedef match_results<const wchar_t*> wcmatch;
typedef match_results<string::const_iterator> smatch;
typedef match_results<wstring::const_iterator> wsmatch;

模板引數

BidirectionalIterator
一個雙向迭代器型別,用於迭代字元的目標序列。
Alloc
用於定義儲存分配模型的分配器物件的型別。預設情況下,allocator類模板用於sub_match型別的元素,它定義了這些物件最簡單的記憶體分配模型,並且與值無關。
別名為成員型別match_results::allocator_type.

sub_match for string literals (class)


成員型別

以下別名是match_results的成員型別。它們被成員函式廣泛用作引數和返回型別。

成員型別定義說明
value_typesub_match<BidirectionalIterator>儲存的元素的型別(sub_match)。
char_typeiterator_traits<BidirectionalIterator>::value_type序列中字元的型別。
string_typebasic_string<char_type>字元型別的string的型別。
allocator_type第二個模板引數 (Alloc)預設為allocator<value_type>
引用const value_type&
const_referenceconst value_type&
iterator一個指向const value_type
const_iterator一個指向const value_typeiterator相同
size_typeiterator_traits<BidirectionalIterator>::difference_type的無符號整數型別,通常與 size_t 一樣
difference_typeiterator_traits<BidirectionalIterator>::size_type相同,通常與 ptrdiff_t 一樣
成員型別定義說明
value_typesub_match<BidirectionalIterator>儲存的元素的型別(sub_match)。
char_typeiterator_traits<BidirectionalIterator>::value_type序列中字元的型別。
string_typebasic_string<char_type>字元型別的string的型別。
allocator_type第二個模板引數 (Alloc)預設為allocator<value_type>
引用value_type&
const_referenceconst value_type&
iterator一個指向const value_type
const_iterator一個指向const value_typeiterator相同
size_typeiterator_traits<BidirectionalIterator>::difference_type的無符號整數型別,通常與 size_t 一樣
difference_typeiterator_traits<BidirectionalIterator>::size_type相同,通常與 ptrdiff_t 一樣

成員函式


容量


迭代器


元素訪問


格式化


Swap


觀察器


非成員函式