Expressions régulières en C# : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Expressions régulières en C# : un outil puissant pour travailler avec le texte



Les expressions régulières (regex) sont un outil indispensable pour rechercher, extraire et remplacer des données textuelles selon un modèle donné. En C# (.NET), le travail avec les expressions régulières est implémenté via l'espace de noms puissant System.Text.RegularExpressions et la classe Regex. Dans cet article, nous allons examiner les principales possibilités des expressions régulières en C# à travers des exemples pratiques qui vous aideront à automatiser le traitement des chaînes de caractères.



Les bases de la classe Regex en C#



La classe principale pour travailler avec les expressions régulières en C# est System.Text.RegularExpressions.Regex. Elle fournit des méthodes statiques et d'instance pour effectuer des opérations de recherche, de remplacement et de division de chaînes.



Création d'un objet Regex



Vous pouvez créer une instance de la classe Regex en passant au constructeur un modèle (pattern) et éventuellement des flags :



using System.Text.RegularExpressions;

// Création simpleRegex regex = new Regex(@"\\d+");

// Avec des flags (par exemple, ignorer la casse)Regex regexIgnoreCase = new Regex(@"hello", RegexOptions.IgnoreCase);


Important : En C#, il est recommandé d'utiliser des chaînes littérales (avec le préfixe @) pour écrire les modèles. Cela permet de ne pas échapper les antislashs, rendant le code plus lisible.



Méthodes statiques de Regex



Pour des opérations ponctuelles, il est plus pratique d'utiliser les méthodes statiques, qui ne nécessitent pas la création d'une instance de la classe :



bool isMatch = Regex.IsMatch("Bonjour, le monde !", @"monde");Console.WriteLine(isMatch); // True

string result = Regex.Replace("123abc456", @"\\d+", "X");Console.WriteLine(result); // XabcX


Méthodes principales pour travailler avec le texte



La classe Regex fournit quatre méthodes clés : IsMatch, Match, Matches et Split. Examinons chacune d'elles avec des exemples.



Méthode IsMatch — vérification de correspondance



La méthode IsMatch retourne un bool indiquant si au moins une correspondance avec le modèle a été trouvée dans la chaîne.



string email = "user@example.com";string pattern = @"^[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}$";

if (Regex.IsMatch(email, pattern)){ Console.WriteLine("Email valide");}else{ Console.WriteLine("Email invalide");}


Cet exemple vérifie si la chaîne correspond à un modèle simple d'adresse email.



Méthodes Match et Matches — recherche de correspondances



Match retourne la première correspondance, tandis que Matches retourne une collection de toutes les correspondances sous la forme d'un objet MatchCollection.



string text = "Prix : 1500 roubles. Réduction : 200 roubles. Total : 1300 roubles.";string pattern = @"\\d+";

// Première correspondanceMatch firstMatch = Regex.Match(text, pattern);Console.WriteLine($"Premier nombre : {firstMatch.Value}"); // 1500

// Toutes les correspondancesMatchCollection allMatches = Regex.Matches(text, pattern);Console.WriteLine("Tous les nombres :");foreach (Match match in allMatches){ Console.WriteLine($" - {match.Value}"); // 1500, 200, 1300}


L'objet Match contient non seulement la valeur (Value), mais aussi la position dans la chaîne (Index) et la longueur (Length).



Méthode Split — division d'une chaîne



Regex.Split divise une chaîne en un tableau de sous-chaînes selon un modèle donné. C'est l'équivalent de String.Split, mais avec le support des expressions régulières.



string data = "Ivan;25;Moscou;programmeur";string pattern = @";";

string[] parts = Regex.Split(data, pattern);foreach (string part in parts){ Console.WriteLine(part);}// Sortie :// Ivan// 25// Moscou// programmeur


Regroupement et capture de données



L'une des fonctionnalités les plus puissantes

Blogs

Book Recommendations