std::match_results<BidirIt,Alloc>::format
来自 cppreference.com
< cpp | regex | match results
template< class OutputIt > OutputIt format( OutputIt out, |
(1) | (自 C++11 起) |
template< class OutputIt, class ST, class SA > OutputIt format( OutputIt out, |
(2) | (自 C++11 起) |
template< class ST, class SA > std::basic_string<char_type,ST,SA> |
(3) | (自 C++11 起) |
string_type format( const char_type* fmt_s, std::regex_constants::match_flag_type flags = |
(4) | (自 C++11 起) |
format
输出格式字符串,将该字符串中的任何格式说明符或转义序列替换为来自 *this 的匹配数据。
1) 格式字符序列由范围
[
fmt_first,
fmt_last)
定义。结果字符序列被复制到 out 中。2) 格式字符序列由 fmt 中的字符定义。结果字符序列被复制到 out 中。
flags 位掩码决定哪些格式说明符和转义序列被识别。
如果 ready() != true,则 format
的行为未定义。
内容 |
[编辑] 参数
fmt_begin, fmt_end | - | 指向定义格式字符序列的字符范围的指针 |
fmt | - | std::basic_string 定义格式字符序列 |
fmt_s | - | 指向定义格式字符序列的以 null 结尾的字符字符串的指针 |
out | - | 结果字符序列被复制到的迭代器 |
flags | - | std::regex_constants::match_flag_type 位掩码,指定哪些格式说明符和转义序列被识别 |
类型要求 | ||
-OutputIt 必须满足 LegacyOutputIterator 的要求。 |
[编辑] 返回值
1,2) out
3,4) 包含结果字符序列的新构造的字符串。
[编辑] 异常
可能抛出实现定义的异常。
[编辑] 示例
运行此代码
#include <iostream> #include <regex> #include <string> int main() { std::string s = "for a good time, call 867-5309"; std::regex phone_regex("\\d{3}-\\d{4}"); std::smatch phone_match; if (std::regex_search(s, phone_match, phone_regex)) { std::string fmt_s = phone_match.format( "$`" // $` means characters before the match "[$&]" // $& means the matched characters "$'"); // $' means characters following the match std::cout << fmt_s << '\n'; } }
输出
for a good time, call [867-5309]
[编辑] 另请参阅
(C++11) |
用格式化的替换文本替换正则表达式的出现 (函数模板) |
(C++11) |
与匹配相关的选项 (typedef) |