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

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# : bases du travail avec la classe Regex

Les expressions régulières (regex) sont un outil puissant pour rechercher, extraire, remplacer et valider des chaînes selon un modèle donné. En C# (.NET), tout le travail avec les expressions régulières est concentré dans l'espace de noms System.Text.RegularExpressions et la classe centrale Regex. Dans cet article, nous allons explorer les fonctionnalités de base et avancées des expressions régulières en C# à travers des exemples pratiques.



1. La classe Regex : méthodes principales et création de modèles

Pour travailler avec les expressions régulières en C#, vous devez inclure l'espace de noms :

using System.Text.RegularExpressions;

La classe Regex fournit plusieurs méthodes clés :

  • IsMatch — vérifie si la chaîne contient une correspondance avec le modèle.
  • Match — retourne la première correspondance.
  • Matches — retourne toutes les correspondances.
  • Replace — remplace les correspondances trouvées par la chaîne spécifiée.
  • Split — divise la chaîne selon les correspondances.

Un exemple simple de validation d'adresse email :

string email = "user@example.com";string pattern = @"^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$";bool isValid = Regex.IsMatch(email, pattern);Console.WriteLine(isValid); // True

Notez le symbole @ avant la chaîne — il s'agit d'une chaîne verbatim, qui simplifie l'écriture des antislashs (\\) dans les modèles.



2. Recherche et extraction de données : méthodes Match et Matches

La méthode Match retourne un objet Match qui contient des informations sur la première correspondance. S'il n'y a pas de correspondance, la propriété Success sera false.

Exemple d'extraction d'un numéro de téléphone à partir d'un texte :

string text = "Appelez au +7 (123) 456-78-90 ou au +7 (987) 654-32-10";string pattern = @"\\+7\\s?\\(\\d{3}\\)\\s?\\d{3}-\\d{2}-\\d{2}";MatchCollection matches = Regex.Matches(text, pattern);

foreach (Match match in matches){ Console.WriteLine(match.Value);}// Sortie :// +7 (123) 456-78-90// +7 (987) 654-32-10

La méthode Matches retourne une collection de toutes les correspondances. Vous pouvez également utiliser des groupes de capture pour extraire des parties spécifiques :

string text = "ID: 12345, Prix: 999.99";string pattern = @"Prix:\\s*(\\d+\\.?\\d*)";Match match = Regex.Match(text, pattern);

if (match.Success){ string price = match.Groups[1].Value; Console.WriteLine($"Prix : {price}"); // Prix : 999.99}

Les groupes de capture sont désignés par des parenthèses () dans le modèle. Le groupe zéro correspond à l'ensemble de la correspondance, et les groupes de 1 à N sont les sous-chaînes capturées.



3. Remplacement et division de chaînes : Replace et Split

La méthode Replace permet de remplacer les correspondances de manière flexible. Les références arrière ($1, $2, etc.) sont prises en charge pour insérer les groupes capturés.

Exemple de formatage de date de "YYYY-MM-DD" à "DD.MM.YYYY" :

string date = "2025-03-15";string pattern = @"(\\d{4})-(\\d{2})-(\\d{2})";string replacement = "$3.$2.$1";string result = Regex.Replace(date, pattern, replacement);Console.WriteLine(result); // 15.03.2025

La méthode Split divise une chaîne selon les correspondances avec le modèle. C'est pratique pour analyser des CSV ou des logs :

string data = "pomme;banane;cerise;raisin";string pattern = @";";string[] fruits = Regex.Split(data, pattern);foreach (var fruit in fruits){    Console.WriteLine(fruit);}// Sortie :// pomme// banane// cerise// raisin

Vous pouvez également utiliser des séparateurs plus complexes, comme plusieurs espaces ou signes de ponctuation :

string text = "un   deux,trois;quatre";string[] parts = Regex.Split(                

Blogs

Book Recommendations