Maison développement back-end C++ Comment utiliser les fonctions d'expressions régulières en C++ ?

Comment utiliser les fonctions d'expressions régulières en C++ ?

Nov 18, 2023 am 11:41 AM
expression régulière c++ Utiliser C++ régulier fonction régulière c++

Comment utiliser les fonctions dexpressions régulières en C++ ?

Comment utiliser la fonction d'expression régulière en C++ ?

Les expressions régulières sont un puissant outil de traitement de texte qui peut être utilisé pour faire correspondre, rechercher et remplacer des modèles dans le texte. En C++, nous pouvons utiliser la bibliothèque de fonctions d'expressions régulières pour traiter du texte. Cet article explique comment utiliser les fonctions d'expression régulière en C++.

Tout d'abord, nous devons inclure le fichier d'en-tête regex de la bibliothèque standard C++ :

#include <regex>
Copier après la connexion

Ensuite, nous pouvons déclarer un objet d'expression régulière en utilisant std::regex et lui transmettre le modèle correspondant. Par exemple, si nous voulons faire correspondre une chaîne composée de plusieurs lettres et chiffres, nous pouvons utiliser le code suivant :

std::regex pattern("[a-zA-Z0-9]+");
Copier après la connexion

Lors de l'utilisation d'expressions régulières, nous pouvons également spécifier certains indicateurs pour modifier le comportement de correspondance. Les indicateurs courants incluent :

  • std::regex_constants::ECMAScript : utiliser la syntaxe d'expression régulière de style ECMAScript
  • std::regex_constants::grep : utiliser la syntaxe d'expression régulière de style grep
  • std::regex_constants ::extended ; : Utiliser la syntaxe d'expression régulière étendue POSIX ;
  • std::regex_constants::icase : ignorer la casse ;
  • std::regex_constants::nosubs : ne pas renvoyer les sous-expressions qui correspondent au résultat.

Vous pouvez choisir un logo adapté en fonction de la situation réelle.

Avant d'effectuer une correspondance d'expression régulière, nous devons définir un objet std::smatch pour stocker les résultats correspondants. std::smatch est un conteneur de résultats correspondants, qui peut stocker plusieurs résultats correspondants. Par exemple :

std::smatch matches;
Copier après la connexion

Ensuite, nous pouvons utiliser la fonction std::regex_match pour vérifier si une chaîne correspond à une expression régulière donnée. Le prototype de cette fonction est le suivant :

bool std::regex_match(const std::string& str, std::smatch& match, const std::regex& pattern);
Copier après la connexion

Parmi eux, str est la chaîne à faire correspondre, match est l'objet std::smatch utilisé pour stocker les résultats de correspondance et pattern est l'objet d'expression régulière à faire correspondre. La fonction renvoie une valeur booléenne indiquant si la correspondance est réussie.

Ce qui suit est un exemple de code qui montre comment utiliser la fonction std::regex_match pour vérifier si une chaîne est une adresse e-mail valide :

#include 
#include <regex>

int main()
{
    std::string email = "example@example.com";
    std::regex pattern("\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b");
    std::smatch matches;

    if (std::regex_match(email, matches, pattern))
    {
        std::cout << "Valid email address!" << std::endl;
    }
    else
    {
        std::cout << "Invalid email address!" << std::endl;
    }

    return 0;
}
Copier après la connexion

En plus d'utiliser la fonction std::regex_match pour une correspondance complète, nous pouvons également utiliser la fonction std ::regex_search effectue une correspondance partielle. Le prototype de la fonction std::regex_search est le suivant :

bool std::regex_search(const std::string& str, std::smatch& match, const std::regex& pattern);
Copier après la connexion

La fonction std::regex_search recherchera dans une chaîne toute sous-chaîne correspondant à l'expression régulière donnée et stockera les résultats correspondants dans un objet std::smatch.

Voici un exemple de code qui montre comment utiliser la fonction std::regex_search pour rechercher tous les entiers dans une chaîne :

#include 
#include <regex>

int main()
{
    std::string text = "abc123def456ghi789";
    std::regex pattern("\d+");
    std::smatch matches;

    while (std::regex_search(text, matches, pattern))
    {
        std::cout << matches.str() << std::endl;
        text = matches.suffix().str();
    }

    return 0;
}
Copier après la connexion

L'exemple ci-dessus affichera : "123", "456" et "789", respectivement caractères Trois entiers dans la chaîne.

En plus de la correspondance et de la recherche, nous pouvons également utiliser la fonction std::regex_replace pour remplacer la partie de la chaîne qui correspond à l'expression régulière. Le prototype de la fonction std::regex_replace est le suivant :

std::string std::regex_replace(const std::string& str, const std::regex& pattern, const std::string& replacement);
Copier après la connexion

La fonction std::regex_replace recherchera dans la chaîne str toutes les sous-chaînes qui correspondent au modèle d'expression régulière donné et les remplacera par la chaîne de remplacement.

Voici un exemple de code qui montre comment utiliser la fonction std::regex_replace pour remplacer tous les espaces d'une chaîne par des traits de soulignement :

#include 
#include <regex>

int main()
{
    std::string text = "Hello,   World!";
    std::regex pattern("\s+");
    std::string replacement = "_";

    std::string result = std::regex_replace(text, pattern, replacement);
    std::cout << result << std::endl;

    return 0;
}
Copier après la connexion

L'exemple ci-dessus affichera : "Hello,_World!", en remplaçant tous les espaces par Underline.

Ce qui précède est une introduction à la façon d'utiliser la fonction d'expression régulière en C++. En utilisant des expressions régulières, nous pouvons traiter efficacement les chaînes et obtenir des capacités de traitement de texte plus flexibles et plus puissantes. J'espère que cet article vous aidera à comprendre et à utiliser les fonctions d'expression régulière en C++.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment fonctionne la bibliothèque de modèle standard C (STL)? Comment fonctionne la bibliothèque de modèle standard C (STL)? Mar 12, 2025 pm 04:50 PM

Cet article explique la bibliothèque de modèles standard C (STL), en se concentrant sur ses composants principaux: conteneurs, itérateurs, algorithmes et fonctors. Il détaille comment ces interagissent pour permettre la programmation générique, l'amélioration de l'efficacité du code et de la lisibilité

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)? Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)? Mar 12, 2025 pm 04:52 PM

Cet article détaille l'utilisation efficace de l'algorithme STL en c. Il met l'accent sur le choix de la structure des données (vecteurs vs listes), l'analyse de la complexité des algorithmes (par exemple, STD :: Srieur vs std :: partial_sort), l'utilisation des itérateurs et l'exécution parallèle. Pièges communs comme

C Structure des données du langage: représentation des données et fonctionnement des arbres et des graphiques C Structure des données du langage: représentation des données et fonctionnement des arbres et des graphiques Apr 04, 2025 am 11:18 AM

C Structure des données du langage: La représentation des données de l'arborescence et du graphique est une structure de données hiérarchique composée de nœuds. Chaque nœud contient un élément de données et un pointeur vers ses nœuds enfants. L'arbre binaire est un type spécial d'arbre. Chaque nœud a au plus deux nœuds enfants. Les données représentent StrustReenode {intdata; structTreenode * gauche; structureReode * droite;}; L'opération crée une arborescence d'arborescence arborescence (prédécision, ordre dans l'ordre et ordre ultérieur) Le nœud d'insertion de l'arborescence des arbres de recherche de nœud Graph est une collection de structures de données, où les éléments sont des sommets, et ils peuvent être connectés ensemble via des bords avec des données droites ou peu nombreuses représentant des voisins.

Comment utiliser efficacement les références RValue en C? Comment utiliser efficacement les références RValue en C? Mar 18, 2025 pm 03:29 PM

L'article discute de l'utilisation efficace des références de référence en C pour la sémantique de déplacement, le transfert parfait et la gestion des ressources, mettant en évidence les meilleures pratiques et les améliorations des performances. (159 caractères)

Comment utiliser les plages dans C 20 pour une manipulation de données plus expressive? Comment utiliser les plages dans C 20 pour une manipulation de données plus expressive? Mar 17, 2025 pm 12:58 PM

Les plages de c 20 améliorent la manipulation des données avec l'expressivité, la composibilité et l'efficacité. Ils simplifient les transformations complexes et s'intègrent dans les bases de code existantes pour de meilleures performances et maintenabilité.

Comment gérer efficacement les exceptions en C? Comment gérer efficacement les exceptions en C? Mar 12, 2025 pm 04:56 PM

Cet article détaille la gestion efficace des exceptions en C, couvrant les mécanismes d'essai, de capture et de lancement. Il met l'accent sur les meilleures pratiques comme RAII, en évitant les blocs de capture inutiles et en enregistrant des exceptions pour un code robuste. L'article aborde également Perf

Comment utiliser Move Semantics en C pour améliorer les performances? Comment utiliser Move Semantics en C pour améliorer les performances? Mar 18, 2025 pm 03:27 PM

L'article discute de l'utilisation de Move Semantics en C pour améliorer les performances en évitant la copie inutile. Il couvre la mise en œuvre de constructeurs de déplace

Comment le répartition dynamique fonctionne-t-il en C et comment affecte-t-il les performances? Comment le répartition dynamique fonctionne-t-il en C et comment affecte-t-il les performances? Mar 17, 2025 pm 01:08 PM

L'article traite de Dynamic Dispatch in C, ses coûts de performance et les stratégies d'optimisation. Il met en évidence les scénarios où la répartition dynamique a un impact

See all articles