std::sub_match
来自 cppreference.com
定义在头文件 <regex> 中 |
||
template< class BidirIt > class sub_match; |
(自 C++11 起) | |
类模板 std::sub_match
用于正则表达式引擎来表示由标记的子表达式匹配的字符序列。匹配是目标范围中由正则表达式匹配的 [
begin,
end)
对,但具有额外的观察者函数以提高代码清晰度。
只有默认构造函数是公开可访问的。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] 成员函数
本节不完整 原因:应用 LWG 3204,添加 swap() 成员函数 |
构造匹配对象 (公有成员函数) | |
观察者 | |
返回匹配的长度(如果有) (公有成员函数) | |
转换为底层字符串类型 (公有成员函数) | |
比较匹配的子序列(如果有) (公有成员函数) |
[edit] 非成员函数
(C++20 中已移除)(C++20 中已移除)(C++20 中已移除)(C++20 中已移除)(C++20 中已移除)(C++20) |
比较 sub_match 与另一个 sub_match 、字符串或字符(函数模板) |
输出匹配的字符子序列 (函数模板) |
[edit] 另请参见
(C++11) |
遍历给定字符串中所有正则表达式匹配中的指定子表达式,或遍历未匹配的子字符串 (类模板) |