C++:
Eliminazione di caratteri che corrispondono a un pattern
How to:
(“Come fare:”)
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string text = "Ecco un esempio: 123! Test 456.";
std::regex pattern("\\d+"); // Rimuove tutte le cifre
// Usiamo regex_replace per sostituire i numeri con una stringa vuota
std::string result = std::regex_replace(text, pattern, "");
std::cout << "Testo originale: " << text << std::endl;
std::cout << "Dopo rimozione: " << result << std::endl;
return 0;
}
Output:
Testo originale: Ecco un esempio: 123! Test 456.
Dopo rimozione: Ecco un esempio: ! Test .
Deep Dive:
(“Approfondimento”)
C++ ha introdotto la libreria <regex>
con lo standard C++11, migliorandola nel tempo. Alternativamente puoi rimuovere caratteri iterando il testo, ma <regex>
rende il codice più leggibile e meno soggetto a errori. A volte <regex>
può essere più lento di metodi manuali, quindi considera altre soluzioni, come usare la funzione erase
o remove_if
dell’STL, se la performance è critica.
See Also:
(“Vedi Anche”)
- Documentazione ufficiale della
<regex>
su cppreference.com: C++ regex - “Effective Modern C++” di Scott Meyers, per consigli sull’uso efficace delle espressioni regolari in C++ moderno.
- cppreference.com, per approfondire su
std::string::erase
: string::erase