regex_replace Function
Normal ifadeler yerini eşleşti.
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);
Parametreler
OutIt
Değiştirmeler Yineleyici türü.BidIt
Yineleyici türü için submatches.RXtraits
Nitelikler sınıf öğeleri için.Alloc
Normal ifade ayırıcı sınıf.Elem
Eşleşen öğe türü.flags
Eşleşmeleri bayraklar.first
Eşleşen dizisi başlıyor.fmt
Değiştirmeler biçimi.last
Eşleşen sıra sonu.out
Çıkış Yineleyici.re
Eşleşen düzenli ifade.str
Eşlenecek dize.
Notlar
İlk işlev yapıları bir regex_iterator Class nesne iter(first, last, re, flags) ve kendi giriş aralığı bölmek için kullandığı [first, last) sıraları, bir dizi içine T0M0T1M1...TN-1MN-1TN, nerede Mn olan nth Yineleyici tarafından algılanan eşleşme. Eşleşme bulunursa, T0 tüm giriş aralığı ve N sıfırdır. (flags & format_first_only) != 0 Yalnýzca birinci eþleþme kullanıldığında, T1 tüm eşleşen izleyen girdi metni ve N 1'dir. Her i aralığında [0, N), (flags & format_no_copy) == 0 bu aralıktaki metni kopyalar Ti Yineleyici için out. Daha sonra çağırır m.format(out, fmt, flags), nerede m olan match_results Yineleyici nesne tarafından döndürülen nesne iter subsequence için Mi. Son olarak, (flags & format_no_copy) == 0 bu aralıktaki metni kopyalar TN Yineleyici için out. İşlev verir out.
İkinci işlev yerel bir değişken yapıları result türü basic_string<charT> ve aramalar regex_replace(back_inserter(result), str.begin(), str.end(), re, fmt, flags). Verdiği result.
Örnek
// 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);
}
Gereksinimler
Başlık: <regex>
Namespace: std