类模板
<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


观察器


非成员函数