C # Regex avec des exemples

C # Regex avec des exemples
Les expressions régulières sont l'un des meilleurs outils utilisés pour faire correspondre, rechercher et remplacer le texte en fonction de modèles spécifiques. C # offre un soutien aux expressions régulières à travers le Système.Texte.Expressions régulières Espace de noms, qui fournit un ensemble complet de classes et de méthodes d'utilisation de regex dans le code. Cet article expliquera C # Regex et fournira des exemples de la façon de l'utiliser efficacement, donc si vous cherchez un moyen facile d'apprendre en les utilisant, lisez ce guide.

Regex en C #

Une expression régulière est un modèle utilisé pour faire correspondre, rechercher et manipuler le texte; Il peut être utilisé pour une variété de tâches, y compris la validation des entrées, la recherche de modèles spécifiques dans une chaîne et le remplacement du texte en fonction de motifs spécifiques.

C # Regex Exemples

En C #, les expressions régulières sont implémentées via la classe Regex, qui fournit des méthodes pour créer, faire correspondre et manipuler des expressions régulières. La classe Regex fait partie de l'espace de noms, qui est inclus dans le .Net Framework, voici quatre exemples qui sont discutés dans ce guide:

  • Correspondant à un modèle simple
  • Extraction de sous-chaînes d'une chaîne
  • Remplacement des sous-chaînes dans une chaîne
  • Splating d'une chaîne
  • Valider une entrée

Exemple 1: correspondant à un modèle simple - C # regex

Dans cet exemple, nous utiliserons Regex pour correspondre à un modèle simple dans une chaîne. Nous allons créer un objet regex qui correspond au modèle «chat» et l'utiliser pour rechercher le motif dans une chaîne.

Utilisation du système;
Utilisation du système.Texte.Expressions régulières;
programme de classe

vide statique Main ()

String input = "Bonjour et bienvenue sur LinuxHint";
Regex regex = new regex ("bienvenue");
Match Match = Regex.Correspond à (entrée);
si (faire correspondre.Succès)

Console.WriteLine ("Found Match:" + Match.Valeur);

autre

Console.WriteLine ("Aucun match trouvé.");


Dans ce code, nous créons un objet Regex qui correspond au modèle «Bienvenue» et l'utilisons pour rechercher le modèle dans la chaîne «Bonjour et bienvenue à Linuxhint."La méthode de match renvoie un objet de match qui contient des informations sur le match, y compris la position du match et la valeur du match. Si une correspondance est trouvée, nous imprimons la valeur de la correspondance à la console et si aucune correspondance n'est trouvée, nous imprimons un message indiquant qu'aucune correspondance n'a été trouvée, voici la sortie du code:

Exemple 2: Extraction des sous-chaînes d'une chaîne - C # Regex

Dans cet exemple, nous utiliserons Regex pour extraire les sous-chaînes d'une chaîne. Nous allons créer un objet regex qui correspond au modèle d'un numéro de téléphone valide et l'utiliser pour extraire le code régional à partir d'un numéro de téléphone String.

Utilisation du système;
Utilisation du système.Texte.Expressions régulières;
programme de classe

vide statique Main ()

String Input = "Numéro de téléphone: (361) 785-9370";
Regex regex = new regex (@ "\ ((\ d 3) \) (\ d 3) - (\ d 4)");
Match Match = Regex.Correspond à (entrée);
si (faire correspondre.Succès)

Console.WriteLine ("Numéro de téléphone:" + Match.Valeur);
Console.WriteLine ("Code régional:" + Match.Groupes [1].Valeur);
Console.WriteLine ("Digits:" + Match.Groupes [2].Valeur);

autre

Console.WriteLine ("Aucun match trouvé.");


Dans ce code, nous créons un objet Regex qui correspond au modèle du code régional d'un numéro de téléphone, qui est enfermé entre parenthèses. Nous utilisons la propriété des groupes de l'objet Match pour accéder au groupe capturé, qui contient le code régional.

L'expression régulière @ ”\ ((\ D 3) \) (\ d 3) - (\ d 4)" correspond à l'ensemble du modèle de numéro de téléphone, qui se compose d'un code régional enfermé entre parenthèses, un espace et trois chiffres suivis d'un trait d'union et de quatre chiffres supplémentaires. Le premier groupe de capture (\ d 3) correspond au code régional, le deuxième groupe de capture (\ d 3) correspond aux trois chiffres après l'espace, et le troisième groupe de capture (\ d 4) correspond aux quatre chiffres après le trait d'union. Si aucune correspondance n'est trouvée, nous imprimons un message indiquant qu'aucune correspondance n'a été trouvée, voici la sortie du code:

Exemple 3: Remplacement des sous-chaînes dans une chaîne - C # Regex

Dans cet exemple, nous utiliserons Regex pour remplacer les sous-chaînes dans une chaîne. Nous allons créer un objet regex qui correspond au modèle d'un mot, et l'utiliserons pour remplacer toutes les occurrences du mot «chien» par le mot «chat» dans une chaîne donnée.

Utilisation du système;
Utilisation du système.Texte.Expressions régulières;
programme de classe

vide statique Main ()

String Input = "Bonjour et bienvenue sur Linuxhint."
Regex regex = new regex ("bonjour");
sortie de chaîne = regex.Remplacer (entrée, «salutations»);
Console.WriteLine (sortie);

Ce code montre comment utiliser le Remplace () pour remplacer la première occurrence d'une correspondance d'expression régulière dans une chaîne par une nouvelle valeur. Dans ce code, nous créons un objet regex qui correspond au modèle «bonjour». Nous utilisons la méthode de remplacement pour remplacer toutes les occurrences du motif par la chaîne «salutations» et la chaîne résultante est ensuite imprimée à la console et voici la sortie du code:

Exemple 4: Clissage d'une chaîne - C # Regex

Dans cet exemple, nous utiliserons Regex pour diviser une chaîne en sous-chaînes. Nous allons créer un objet regex qui correspond au motif de l'espace blanc et l'utiliserons pour diviser une chaîne donnée en un tableau de sous-chaînes.

Utilisation du système;
Utilisation du système.Texte.Expressions régulières;
programme de classe

vide statique Main ()

String Input = "Bonjour et bienvenue sur Linuxhint."
Regex regex = newRegex (@ "\ s +");
String [] substances = regex.Split (entrée);
foreach (sous-chaîne de cordes dans les sous-chaînes)

Console.Writeline (substring);


Dans ce code, nous créons un objet regex qui correspond au modèle des caractères de l'espace blanc, tels que des espaces et des onglets. Nous utilisons la méthode divisée pour diviser la chaîne d'entrée en tableaux de sous-chaînes, en utilisant le motif de l'espace blanc comme délimiteur. Les sous-chaînes résultantes sont ensuite imprimées sur la console à l'aide d'une boucle FOREACH et voici la sortie du code:

Ce code montre comment utiliser le Split () pour diviser une chaîne en un tableau de sous-chaînes basées sur une correspondance d'expression régulière. Dans ce cas, l'expression régulière correspond à un ou plusieurs caractères d'espace blanc (\ s +), donc la chaîne d'entrée est divisée en trois sous-chaînes: «Bonjour», «et», et «Bienvenue à Linuxhint».

Exemple 5: Utilisation d'une expression régulière pour valider l'entrée - C # Regex

Dans cet exemple, nous utiliserons Regex pour valider les entrées de l'utilisateur. Nous allons créer un objet regex qui correspond au modèle d'une adresse e-mail valide et l'utiliser pour valider l'entrée fournie par l'utilisateur.

Utilisation du système;
Utilisation du système.Texte.Expressions régulières;
programme de classe

vide statique Main ()

Console.Écrire ("Entrez votre adresse e-mail:");
Entrée de chaîne = Console.ReadLine ();
Regex regex = new regex (@ "^ [\ w- \.] + @ ([\ w -] + \.) + [\ w -] 2,4 $ ");
si (regex.Ismatch (entrée))

Console.WriteLine ("Adresse e-mail valide.");

autre

Console.WriteLine ("Adresse e-mail non valide.");


Dans ce code, nous créons un objet regex qui correspond au modèle d'une adresse e-mail valide. Le modèle est une expression régulière complexe qui correspond au format d'une adresse e-mail typique. Nous utilisons la méthode Ismatch pour tester si l'entrée fournie par l'utilisateur correspond au modèle et si l'entrée correspond au modèle, nous imprimons un message indiquant que l'adresse e-mail est valide, si l'entrée ne correspond pas au modèle, nous imprimons un message indiquant que l'adresse e-mail n'est pas valide.

Quelques expressions regex courantes

Le tableau des expressions regex fournit une liste de modèles d'expression réguliers courants utilisés pour la manipulation du texte en C #. La colonne «Expression» contient la syntaxe réelle utilisée pour la correspondance de texte, tandis que la colonne «Description» fournit une brève explication de la fonction du modèle:

Expression Description
"X, y" Correspond aux occurrences x et y du caractère ou du groupe précédent
"+" Correspond à un ou plusieurs du caractère ou du groupe précédent
"^" Correspond au début d'une chaîne
"[]" Correspond à n'importe quel personnage entre les supports
"N" Correspond exactement à n occurrences du caractère ou du groupe précédent
"[^]" Correspond à tout personnage qui n'est pas entre les crochets
"." Correspond à n'importe quel caractère unique sauf une nouvelle ligne
"$" Correspond à la fin d'une chaîne
«S» Correspond à n'importe quel caractère blanc (espace, onglet, newline, etc.)
«\ S» Correspond à n'importe quel personnage non blanc
"W" Correspond à n'importe quel caractère de mot (lettre, chiffre ou soulignement)
"\d" Correspond à n'importe quel chiffre (0-9)
"()" Regroupe une série de personnages ensemble
"W" Correspond à n'importe quel personnage non mot
Correspond à un ou plusieurs du caractère ou du groupe précédent
"\D" Correspond à tout caractère qui n'est pas un chiffre

Conclusion

En conclusion, les expressions régulières sont un moyen puissant de travailler avec des données de texte en C #. Ces 5 exemples démontrent la polyvalence de Regex, de la simple correspondance de motifs aux opérations plus avancées comme la validation et la manipulation de la chaîne. En maîtrisant Regex, vous pouvez améliorer considérablement votre capacité à travailler avec des données de texte en C #.