Sdílet prostřednictvím


regex_replace – funkce

Nahradí odpovídající regulární výrazy.

template<class OutIt, class BidIt, class RXtraits, class Alloc, class Elem>
    OutIt regex_replace(OutIt out,
        BidIt first, BidIt last,
        const basic_regex<Elem, RXtraits, Alloc>& re,
        const basic_string<Elem>& fmt,
        match_flag_type flags = match_default);
template<class RXtraits, class Alloc, class Elem>
    basic_string<Elem> regex_replace(const basic_string<Elem>& str,
        const basic_regex<Elem, RXtraits, Alloc>& re,
        const basic_string<Elem>& fmt,
        match_flag_type flags = match_default);

Parametry

  • OutIt
    Typ iterátor pro nahrazení.

  • BidIt
    Typ iterátor pro submatches.

  • RXtraits
    Vlastnosti třídy prvků.

  • Alloc
    Přidělování třídy regulárních výrazů.

  • Elem
    Typ prvků tak, aby odpovídala.

  • flags
    Příznaky shody.

  • first
    Začátek posloupnosti tak, aby odpovídala.

  • fmt
    Formát pro nahrazení.

  • last
    Konec sekvenci tak, aby odpovídala.

  • out
    Výstupní iterace.

  • re
    Regulární výraz shodovat.

  • str
    Řetězec tak, aby odpovídala.

Poznámky

První funkce konstrukce regex_iterator – třída objektu iter(first, last, re, flags) a používá rozdělení jeho vstupní oblast [first, last) na řadu dílčích sekvencí T0M0T1M1...TN-1MN-1TN, kde Mn je nth shoda zjištěný iterace.Pokud nejsou nalezeny žádné shody, T0 je celý vstupní oblasti a N je nula.Pokud (flags & format_first_only) != 0 se používá pouze první shodu, T1 je vše vstupní text, který následuje po shodě a N 1.Pro každou i v oblasti [0, N), (flags & format_no_copy) == 0 zkopíruje text v rozsahu Ti k iteraci out.Potom zavolá m.format(out, fmt, flags), kde m je match_results objektu vráceného objektu iterátor iter pro subsequence Mi.Nakonec pokud (flags & format_no_copy) == 0 zkopíruje text v rozsahu TN k iteraci out.Funkce vrátí out.

Druhá funkce vytvoří místní proměnnou result typu basic_string<charT> a regex_replace(back_inserter(result), str.begin(), str.end(), re, fmt, flags).Vrátí result.

Příklad

 

// std_tr1__regex__regex_replace.cpp 
// compile with: /EHsc 
#include <regex> 
#include <iostream> 
 
int main() 
    { 
    char buf[20]; 
    const char *first = "axayaz"; 
    const char *last = first + strlen(first); 
    std::regex rx("a"); 
    std::string fmt("A"); 
    std::regex_constants::match_flag_type fonly = 
        std::regex_constants::format_first_only; 
 
    *std::regex_replace(&buf[0], first, last, rx, fmt) = '\0'; 
    std::cout << "replacement == " << &buf[0] << std::endl; 
 
    *std::regex_replace(&buf[0], first, last, rx, fmt, fonly) = '\0'; 
    std::cout << "replacement == " << &buf[0] << std::endl; 
 
    std::string str("adaeaf"); 
    std::cout << "replacement == " 
        << std::regex_replace(str, rx, fmt) << std::endl; 
 
    std::cout << "replacement == " 
        << std::regex_replace(str, rx, fmt, fonly) << std::endl; 
 
    return (0); 
    } 
 
  

Požadavky

Záhlaví:<regex>

Obor názvů: std

Viz také

Referenční dokumentace

<regex>

regex_match – funkce

regex_search – funkce