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) | (начиная с 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) | (начиная с 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) | (начиная с C++11) |
string_type format( const char_type* fmt_s,
std::regex_constants::match_flag_type flags =
std::regex_constants::format_default ) const;
| (4) | (начиная с 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) | параметры, относящиеся к сопоставлению (псевдоним типа) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/regex/match_results/format