Libreria di regex C ++ - regex_replace
Descrizione
Crea una copia della sequenza di destinazione (il soggetto) con tutte le corrispondenze dell'espressione regolare rgx (il modello) sostituite da fmt (la sostituzione). La sequenza di destinazione è s o la sequenza di caratteri tra il primo e l'ultimo, a seconda della versione utilizzata.
Dichiarazione
Di seguito è riportata la dichiarazione per std :: regex_replace.
template <class traits, class charT>
basic_string<charT>regex_replace (const charT* s,
const basic_regex<charT,traits>& rgx,
const charT* fmt,
C ++ 11
template <class traits, class charT>
basic_string<charT>regex_replace (const charT* s,
const basic_regex<charT,traits>& rgx,
const charT* fmt,
C ++ 14
template <class traits, class charT>
basic_string<charT>regex_replace (const charT* s,
const basic_regex<charT,traits>& rgx,
const charT* fmt,
Parametri
s - È una stringa con la sequenza di destinazione.
rgx - È un oggetto basic_regex da abbinare.
flags - Viene utilizzato per controllare come rgx è abbinato.
m - È un oggetto di tipo match_results.
Valore di ritorno
Restituisce un oggetto stringa con la sequenza risultante.
Eccezioni
No-noexcept - questa funzione membro non genera mai eccezioni.
Esempio
Nell'esempio seguente per std :: regex_replace.
#include <iostream>
#include <string>
#include <regex>
#include <iterator>
int main () {
std::string s ("there is a subsequence in the string\n");
std::regex e ("\\b(sub)([^ ]*)");
std::cout << std::regex_replace (s,e,"sub-$2");
std::string result;
std::regex_replace (std::back_inserter(result), s.begin(), s.end(), e, "$2");
std::cout << result;
std::cout << std::regex_replace (s,e,"$1 and $2",std::regex_constants::format_no_copy);
std::cout << std::endl;
return 0;
}
L'output dovrebbe essere così -
there is a sub-sequence in the string
there is a sequence in the string
sub and sequence