命名空间
变体
操作

std::sub_match

来自 cppreference.com
< cpp‎ | regex
定义在头文件 <regex>
template< class BidirIt >
class sub_match;
(自 C++11 起)

类模板 std::sub_match 用于正则表达式引擎来表示由标记的子表达式匹配的字符序列。匹配是目标范围中由正则表达式匹配的 [beginend) 对,但具有额外的观察者函数以提高代码清晰度。

只有默认构造函数是公开可访问的。std::sub_match 的实例通常是在处理其中一个正则表达式算法时,作为 std::match_results 容器的一部分进行构造和填充。

除非 matched 成员为 true,否则成员函数将返回定义的默认值。

std::sub_match 继承自 std::pair<BidirIt, BidirIt>,虽然它不能被视为 std::pair 对象,因为诸如赋值之类的成员函数不会按预期工作。

内容

[edit] 类型要求

-
BidirIt 必须满足 LegacyBidirectionalIterator 的要求。

[edit] 特化

为常见的字符序列类型提供了多个特化

定义在头文件 <regex>
类型 定义
std::csub_match std::sub_match<const char*>
std::wcsub_match std::sub_match<const wchar_t*>
std::ssub_match std::sub_match<std::string::const_iterator>
std::wssub_match std::sub_match<std::wstring::const_iterator>

[edit] 成员类型

成员类型 定义
iterator BidirIt
value_type std::iterator_traits<BidirIt>::value_type
difference_type std::iterator_traits<BidirIt>::difference_type
string_type std::basic_string<value_type>

[edit] 成员对象

bool matched
指示此匹配是否成功
(公有成员对象)

std::pair 继承

BidirIt first
匹配序列的开始。
(公有成员对象)
BidirIt second
匹配序列的尾部。
(公有成员对象)

[edit] 成员函数

构造匹配对象
(公有成员函数) [edit]
观察者
返回匹配的长度(如果有)
(公有成员函数) [edit]
转换为底层字符串类型
(公有成员函数) [edit]
比较匹配的子序列(如果有)
(公有成员函数) [edit]

[edit] 非成员函数

(C++20 中已移除)(C++20 中已移除)(C++20 中已移除)(C++20 中已移除)(C++20 中已移除)(C++20)
比较 sub_match 与另一个 sub_match、字符串或字符
(函数模板) [edit]
输出匹配的字符子序列
(函数模板) [edit]

[edit] 另请参见

遍历给定字符串中所有正则表达式匹配中的指定子表达式,或遍历未匹配的子字符串
(类模板) [edit]