Excluindo caracteres que correspondem a um padrão

C++:
Excluindo caracteres que correspondem a um padrão

Como Fazer:

#include <iostream>
#include <regex>
#include <string>

int main() {
    std::string texto = "Exemplo123 com números e !@# símbolos.";
    std::regex padrao("[0-9!@#]"); // Define o padrão para dígitos e símbolos específicos.

    // Remove caracteres que correspondem ao padrão.
    std::string resultado = std::regex_replace(texto, padrao, "");

    std::cout << resultado << std::endl; // Saída: Exemplo com números e  símbolos.

    return 0;
}

Mergulho Profundo

Antigamente, a manipulação de strings em C++ era feita principalmente utilizando funções da biblioteca <cstring>, como strtok() e strcspn(), com operações manuais de iteração e substituição de caracteres. Com a evolução da linguagem, a biblioteca padrão de C++ introduziu a classe std::string e, posteriormente, as expressões regulares chegaram com o C++11 na biblioteca <regex>.

Usar std::regex é uma forma boa e moderna de se trabalhar com padrões de texto, mas não é a única. Se performance é primordial, é possível que métodos manuais, bibliotecas externas otimizadas como RE2 ou até funcionalidades do C++20, como std::ranges, sejam mais adequadas. A compreensão da implementação de expressões regulares também é útil, pois elas podem ter custos computacionais significativos, especialmente em padrões complexos ou strings muito grandes.

Veja Também