Guide de Débutant sur les Expressions Régulières (RegEx) en C

Salut là, futur superstars du codage ! ? Êtes-vous prêt à entreprendre un voyage passionnant dans le monde des Expressions Régulières (RegEx) en C# ? Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - je suis là pour vous guider à travers cette aventure pas à pas. C'est parti !

C# - Regular Expressions

Qu'est-ce que les Expressions Régulières ?

Avant de plonger dans les détails, comprenstons ce qu'elles sont. Imaginez que vous êtes une détective ?️‍♀️ cherchant un motif spécifique dans un océan de texte. Les Expressions Régulières sont votre loupe, vous aidant à chercher, matcher et manipuler du texte basé sur des motifs. Génial, non ?

Éléments de Construction pour Définir des Expressions Régulières

Revenons maintenant aux blocs de base que nous utilisons pour créer ces puissants motifs. Pensez à eux comme les pièces de LEGO de notre monde RegEx !

Élément Description Exemple
. Correspond à n'importe quel caractère sauf le saut de ligne a.c correspond à "abc", "a1c", "a@c", etc.
* Correspond à zéro ou plusieurs occurrences du caractère précédent ab*c correspond à "ac", "abc", "abbc", "abbbc", etc.
+ Correspond à une ou plusieurs occurrences du caractère précédent ab+c correspond à "abc", "abbc", "abbbc", mais pas à "ac"
? Rend le caractère précédent optionnel colou?r correspond à "color" et "colour"
^ Correspond au début d'une ligne ^Hello correspond à "Hello World" mais pas à "Say Hello"
$ Correspond à la fin d'une ligne World$ correspond à "Hello World" mais pas à "World Cup"
[ ] Correspond à n'importe quel caractère d'un ensemble [aeiou] correspond à n'importe quel voyelle
[^ ] Correspond à n'importe quel caractère en dehors d'un ensemble [^aeiou] correspond à n'importe quel consonne
( ) Groupe des caractères ensemble (ab)+ correspond à "ab", "abab", "ababab", etc.

Ne vous inquiétez pas si cela semble écrasant - nous verrons cela en action prochaînement !

La Classe Regex

En C#, nous utilisons la classe Regex pour travailler avec les Expressions Régulières. C'est comme notre couteau suisse ? pour le matching de motifs. Voyons comment l'utiliser !

Exemple 1 : Trouver un Motif Simple

Commençons par quelque chose de simple. Imaginez que vous construisez un programme pour vérifier si une adresse email est valide.

using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string email = "[email protected]";
string pattern = @"@.*\.";

Regex regex = new Regex(pattern);
Match match = regex.Match(email);

if (match.Success)
{
Console.WriteLine("Adresse email valide !");
}
else
{
Console.WriteLine("Adresse email invalide !");
}
}
}

Dans cet exemple :

  • Nous créons un objet Regex avec notre motif @"@.*\.".
  • Ce motif recherche un symbole @, suivi de n'importe quels caractères (.*), puis un point (\.).
  • Nous utilisons la méthode Match pour trouver ce motif dans notre chaîne email.
  • Si cela réussit, nous considérons l'email comme valide.

N'oubliez pas, ceci est un contrôle très simple. La validation réelle des emails est bien plus complexe !

Exemple 2 : Remplacer du Texte

Maintenant, imaginez que vous construisez une application de chat, et que vous souhaitez remplacer toutes les instances de "LOL" par "rire à haute voix". RegEx à la rescousse !

using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string input = "OMG! As-tu vu ça? LOL! Je ne peux pas y croire. LOL";
string pattern = @"\bLOL\b";
string replacement = "rire à haute voix";

string result = Regex.Replace(input, pattern, replacement);

Console.WriteLine(result);
}
}

Voici ce qui se passe :

  • Nous utilisons \b pour matcher les limites des mots. Cela nous assure que nous ne remplaçons "LOL" que lorsque c'est un mot entier, pas une partie d'un autre mot.
  • Regex.Replace fait la magie en trouvant toutes les correspondances et en les remplaçant.

Sortie : "OMG! As-tu vu ça? rire à haute voix! Je ne peux pas y croire. rire à haute voix"

Exemple 3 : Extraire des Informations

Enfin, extrayons toutes les hashtags d'un tweet. C'est quelque chose que vous pourriez faire si vous construisiez une fonction de sujets tendances pour une application de médias sociaux.

using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string tweet = "J'ai fini mon cours de #CSharp ! #Coding #LearningToCode";
string pattern = @"#\w+";

MatchCollection matches = Regex.Matches(tweet, pattern);

Console.WriteLine("Hashtags trouvés :");
foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}
}
}

Décomposons cela :

  • Notre motif #\w+ recherche un # suivi d'un ou plusieurs caractères de mot.
  • Regex.Matches trouve toutes les occurrences du motif dans notre chaîne.
  • Nous parcourons ensuite les correspondances et les affichons.

Sortie :

Hashtags trouvés :
#CSharp
#Coding
#LearningToCode

Conclusion

Félicitations ! ? Vous avez appena fait vos premiers pas dans le monde des Expressions Régulières en C#. Nous avons couvert les bases, de la correspondance de motifs simple au remplacement de texte et à l'extraction d'informations. Souvenez-vous, RegEx est un outil puissant, mais comme tout superpouvoir, il faut de la pratique pour le maîtriser.

Ne soyez pas découragé si cela semble difficile au début. Je me souviens d'un étudiant que j'avais qui était tellement confus, il a dit que cela ressemblait à un chat qui avait marché sur son clavier ! Mais avec de la pratique, il est devenu un maître des RegEx. Vous pouvez aussi le faire !

Continuez à expérimenter, essayez différents motifs, et bientôt vous serez capable de trouver des aiguilles dans des bottes comme un pro. Bon codage ! ??

Credits: Image by storyset