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 !
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