std::match_results<BidirIt,Alloc>::format
template< class OutputIt >
OutputIt format( OutputIt out,
const char_type* fmt_first, const char_type* fmt_last,
std::regex_constants::match_flag_type flags =
std::regex_constants::format_default ) const;
| (1) | (since C++11) |
template< class OutputIt, class ST, class SA >
OutputIt format( OutputIt out,
const basic_string<char_type,ST,SA>& fmt,
std::regex_constants::match_flag_type flags =
std::regex_constants::format_default ) const;
| (2) | (since C++11) |
template< class ST, class SA >
std::basic_string<char_type,ST,SA>
format( const std::basic_string<char_type,ST,SA>& fmt,
std::regex_constants::match_flag_type flags =
std::regex_constants::format_default ) const;
| (3) | (since C++11) |
string_type format( const char_type* fmt_s,
std::regex_constants::match_flag_type flags =
std::regex_constants::format_default ) const;
| (4) | (since C++11) |
format выводит строку форматирования, заменяя все спецификаторы формата или escape-последовательности в этой строке данными сопоставления из *this.
1) Последовательность символов форматирования определяется диапазоном
[fmt_first, fmt_last). Полученная последовательность символов копируется в out.
2) Последовательность символов форматирования определяется символами в
fmt. Полученная последовательность символов копируется в out.
3,4) Последовательность символов форматирования определяется символами в
fmt и fmt_s соответственно. Полученная последовательность символов копируется в новый объект std::basic_string, который и возвращается.Маска flags определяет, какие спецификаторы формата и escape-последовательности распознаются.
Поведение format не определено, если ready() != true.
Параметры
| fmt_begin, fmt_end | - | указатели на диапазон символов, определяющих последовательность символов форматирования |
| fmt | - | std::basic_string определяющая последовательность символов форматирования |
| fmt_s | - | указатель на строку символов с нулевым завершением, определяющую последовательность символов форматирования |
| out | - | итератор, в который копируется результирующая последовательность символов |
| flags | - | std::regex_constants::match_flag_type маска, определяющая, какие спецификаторы формата и escape-последовательности распознаются |
| Требования к типу | ||
-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) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/regex/match_results/format