Namensräume
Varianten
Aktionen

std::match_results<BidirIt,Alloc>::format

Von cppreference.com
< cpp‎ | regex‎ | match results
 
 
 
Bibliothek für reguläre Ausdrücke
Klassen
(C++11)
Algorithmen
Iteratoren
Ausnahmen
Traits
Konstanten
(C++11)
Reguläre Ausdrucksgrammatiken
 
 
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) (seit 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) (seit 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) (seit C++11)
string_type format( const char_type* fmt_s,

                    std::regex_constants::match_flag_type flags =

                        std::regex_constants::format_default ) const;
(4) (seit C++11)

format gibt eine Formatzeichenkette aus, wobei Formatbezeichner oder Escape-Sequenzen in dieser Zeichenkette durch Übereinstimmungsdaten aus *this ersetzt werden.

1) Die Formatzeichenfolge wird durch den Bereich [fmt_firstfmt_last) definiert. Die resultierende Zeichenfolge wird nach out kopiert.
2) Die Formatzeichenfolge wird durch die Zeichen in fmt definiert. Die resultierende Zeichenfolge wird nach out kopiert.
3,4) Die Formatzeichenfolge wird durch die Zeichen in fmt bzw. fmt_s definiert. Die resultierende Zeichenfolge wird in eine neu konstruierte std::basic_string kopiert, die zurückgegeben wird.

Die Bitmaske flags bestimmt, welche Formatbezeichner und Escape-Sequenzen erkannt werden.

Das Verhalten von format ist undefiniert, wenn ready() != true.

Inhalt

[bearbeiten] Parameter

fmt_begin, fmt_end - Zeiger auf einen Bereich von Zeichen, der die Formatzeichenfolge definiert
fmt - std::basic_string, die die Formatzeichenfolge definiert
fmt_s - Zeiger auf eine nullterminierte Zeichenkette, die die Formatzeichenfolge definiert
out - Iterator, zu dem die resultierende Zeichenfolge kopiert wird
flags - std::regex_constants::match_flag_type Bitmaske, die angibt, welche Formatbezeichner und Escape-Sequenzen erkannt werden
Typanforderungen
-
OutputIt muss die Anforderungen an LegacyOutputIterator erfüllen.

[bearbeiten] Rückgabewert

1,2) out
3,4) Die neu konstruierte Zeichenkette, die die resultierende Zeichenfolge enthält.

[edit] Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

[bearbeiten] Beispiel

#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';
    }   
}

Ausgabe

for a good time, call [867-5309]

[bearbeiten] Siehe auch

ersetzt Vorkommen eines regulären Ausdrucks durch formatierten Ersetzungstext
(Funktionsvorlage) [bearbeiten]
Optionen speziell für die Übereinstimmung
(Typalias) [bearbeiten]