Reguliere expressies gebruiken

C++:
Reguliere expressies gebruiken

Hoe te:

Om reguliere expressies in C++ te gebruiken, moet je de <regex> bibliotheek includeren. Hier is hoe je tekst matcht, zoekt en vervangt:

#include <iostream>
#include <regex>

int main() {
    std::string target("Hallo Wereld. Dit is een regex test.");
    
    // Match
    std::regex match_pattern("Hallo Wereld");
    bool is_match = std::regex_match(target, match_pattern);
    std::cout << (is_match ? "Overeenkomst" : "Geen overeenkomst") << "\n";
    
    // Zoeken
    std::regex search_pattern("\\bis\\b");
    std::smatch matches;
    if (std::regex_search(target, matches, search_pattern)) {
        std::cout << "Gevonden: " << matches[0] << "\n";
    }

    // Vervangen
    std::regex replace_pattern("Wereld");
    std::string result = std::regex_replace(target, replace_pattern, "Universum");
    std::cout << "Na vervanging: " << result << "\n";
    
    return 0;
}

Voorbeelduitvoer:

Overeenkomst
Gevonden: is
Na vervanging: Hallo Universum. Dit is een regex test.

Diepgaande Duik

Reguliere expressies zijn sinds de jaren 1950 een onderdeel van de informatica, gepopulariseerd door hulpprogramma’s zoals grep in Unix. C++ heeft ze veel later aangenomen, met std::regex in C++11. Native ondersteuning varieert per compiler; sommige kunnen achterblijven in volledige regex-functieondersteuning.

Alternatieven voor std::regex omvatten bibliotheken zoals Boost.Regex of PCRE (Perl Compatible Regular Expressions). Boost.Regex presteert bijvoorbeeld vaak beter dan std::regex en heeft een rijker functieset.

Vanuit implementatie-oogpunt kan std::regex trager zijn dan sommige aangepaste parseralgoritmes, vooral voor eenvoudige patronen. Het begrijpen van de afweging tussen regex-gemak en potentiële prestatieproblemen is cruciaal.

Zie Ook

Verder lezen en tools om je regex-vaardigheden te verbeteren: