Maison >développement back-end >Tutoriel C#.Net >Expression régulière en C#

Expression régulière en C#

WBOY
WBOYoriginal
2024-09-03 15:27:15478parcourir

La correspondance de modèles est effectuée en C# à l'aide d'une expression régulière et la classe regex de C# est utilisée pour créer une expression régulière en C#, une norme pour la correspondance de modèles dans les chaînes et pour le remplacement est définie à l'aide d'une expression régulière et indique à l'ordinateur via l'utilisateur comment pour rechercher un modèle spécifique dans une chaîne et quelle doit être la réponse lorsqu'il trouve le modèle spécifique qu'il recherche et regex est l'abréviation d'une expression régulière, les expressions régulières globales en C# sont une méthode puissante pour identifier et remplacer le texte dans les chaînes définies dans un format particulier.

Syntaxe

Ce qui suit est une liste de la syntaxe de base utilisée pour les expressions régulières en C#. Ce sont :

1. Quantificateurs

La liste des quantificateurs importants est la suivante :

  • * : Le caractère précédent correspond à zéro ou plusieurs fois. Considérons l'expression régulière c*. Cette expression fait correspondre d, cd, ccd, cccd,….c à la puissance nd.
  • + : Le caractère précédent est mis en correspondance une ou plusieurs fois. Considérons l'expression régulière c+d. Cette expression fait correspondre cd, ccd, cccd,….c à la puissance de nd.
  • ? : Le caractère précédent correspond à zéro ou une fois. Considérons l'expression régulière c?d. Cette expression correspond à d, cd.

2. Caractères spéciaux

La liste des caractères spéciaux importants est la suivante :

  •  ^ : Le début de la chaîne correspond à l'aide de ce caractère spécial. Prenons l'exemple du ^Karnataka. Cette expression correspond au Karnataka qui est notre État.
  •  $ : La fin de la chaîne correspond à l'aide de ce caractère spécial. Prenons l'exemple du Karnataka$. Cette expression correspond à Notre état est le Karnataka. 
  • Point (.) : Tout caractère ne correspond qu'une seule fois à l'aide de ce caractère spécial. Prenons l'exemple l.t (longueur = 3). Cette expression correspond à allumé, beaucoup, laissez.
  • d : Un caractère numérique est mis en correspondance à l'aide de ce caractère spécial. Prenons l'exemple Regex-[0-9]. Cette expression correspond à 123, 456, 254, etc.
  • D : Tout caractère autre qu'un chiffre est mis en correspondance à l'aide de ce caractère spécial. Prenons l'exemple Regex-[^0-9]. Cette expression correspond à tout sauf aux nombres composés de chiffres de 0 à 9.
  • w : Un caractère alphanumérique plus « _ » peut être associé à l'aide de ce caractère spécial. Prenons l'exemple Regex- A à Z, 0 à 9, a à z, _(Underscore). Cette expression correspond au caractère alphanumérique « _ ».
  • W : Tout caractère autre qu'un mot est mis en correspondance à l'aide de ce caractère spécial. Prenons l'exemple W. Cette expression correspond à « ». dans «IR B2.8»
  • s : Les caractères d'espacement blancs sont mis en correspondance à l'aide de ce caractère spécial. Prenons l'exemple ws. Cette expression correspond à « C » dans « IC B1.5 »
  • S : Les caractères d'espace non blancs sont mis en correspondance à l'aide de ce caractère spécial. Prenons l'exemple sS. Cette expression correspond à « _ » dans « IC__B1.5 »

3. Classes de personnages

Les caractères peuvent être regroupés en les mettant entre crochets. En faisant cela, au moins un caractère de l'entrée correspondra à n'importe quel caractère de la classe.

[] : Une plage de caractères peut être associée à l'aide de []. Prenons l'exemple [Xyz]. Cette expression correspond à x, y et z.

Considérons l'exemple [c-r]. Cette expression correspond à n'importe lequel des caractères compris entre c et r.

4. Regroupement et alternatives

Les choses peuvent être regroupées en utilisant les parenthèses ( et ).

  • () : Les expressions peuvent être regroupées à l'aide de (). Prenons l'exemple (ab)+. Cette expression correspond à ab, abab et ne correspond pas à aabb.
  •  {} : Correspond au caractère précédent un nombre de fois spécifique.. Le nombre de fois peut être spécifié en utilisant ce qui suit :
  • n : L'élément précédent correspond exactement n nombre de fois. Prenons l'exemple « ,d{3} ». Cette expression correspond,123 en 1,123.40
  •  {n,m} : L'élément précédent est mis en correspondance au moins n nombre de fois mais pas plus de m nombre de fois. Prenons l'exemple « ,d{2,3} ». Cette expression correspond à,12 et,123 dans 1 123,40

Travail des expressions régulières en C#

Fondamentalement, il existe deux types de moteurs d'expressions régulières. Ce sont des moteurs dirigés vers le texte et des moteurs dirigés vers les expressions régulières. Un moteur dirigé par regex parcourt l'expression regex en essayant de faire correspondre le jeton suivant de l'expression regex au caractère suivant. L'expression régulière avance si une correspondance est trouvée, sinon elle revient à la position précédente dans l'expression régulière et à la chaîne à analyser où elle peut essayer différents chemins à travers l'expression régulière. Un moteur dirigé vers le texte parcourt la chaîne en essayant toutes les permutations de l'expression regex avant de passer au caractère suivant dans la chaîne. Il n'y a pas de retour en arrière ou de retour en arrière dans le moteur dirigé vers le texte. La correspondance la plus à gauche est toujours renvoyée par le moteur d'expression régulière même s'il existe des possibilités de retrouver les correspondances exactes plus tard. Le moteur commence par le premier caractère de la chaîne chaque fois qu'une expression régulière doit être appliquée à la chaîne. Toutes les permutations possibles sont appliquées au premier caractère et les résultats semblent échouer, puis les permutations sont déplacées vers le deuxième caractère de la chaîne et ce processus se poursuit jusqu'à ce que le moteur d'expression régulière trouve la correspondance exacte.

Prenons l'exemple Vérifiez l'eau de la baignoire avant d'aller au bain. Il est demandé au moteur d'expression régulière de trouver le mot bain dans la phrase ci-dessus. Le premier caractère C correspond à b par le moteur d'expression régulière et c'est un échec. Ainsi, le caractère suivant H essaie de correspondre à b par le moteur d'expression régulière et encore une fois, c'est un échec. Cela continue et lorsque le moteur d'expression régulière essaie de faire correspondre le 24ème caractère avec b, cela correspond. Ainsi, il continue et fait correspondre le mot bain de la baignoire avec le mot bain et le moteur signale le mot bain de la baignoire comme une correspondance correcte et il n'ira pas plus loin dans la déclaration pour voir s'il y a d'autres correspondances. C'est ainsi que le moteur regex fonctionne en interne.

Méthodes d'expression régulière en C#

L'expression régulière en C# utilise les méthodes suivantes. Ce sont :

  • public bool IsMatch(string input): L'expression régulière spécifiée par le constructeur regex est mise en correspondance avec la chaîne d'entrée spécifiée à l'aide de cette méthode.
  • public bool IsMatch(string input, int startat) : L'expression régulière spécifiée par le constructeur regex est mise en correspondance avec la chaîne d'entrée spécifiée avec la position de départ spécifiée, en utilisant cette méthode.
  • public static bool IsMatch(string input, string pattern) : La méthode fait correspondre l'expression régulière spécifiée avec la chaîne d'entrée spécifiée.
  •  Correspondances MatchCollection publiques (entrée de chaîne) : Toutes les occurrences d'une expression régulière sont recherchées dans la chaîne d'entrée spécifiée, en utilisant cette méthode.
  • public string Replace(string input, string replacement) : Les chaînes spécifiées correspondant à l'expression régulière sont toutes remplacées par la chaîne de remplacement, en utilisant cette méthode.
  • public string[] Split(string input) : Les positions spécifiées par les expressions régulières sont celles où le tableau de chaînes est divisé en un tableau de sous-chaînes, en utilisant cette méthode.

Exemple sur une expression régulière en C#

Programme C# pour démontrer l'utilisation d'expressions régulières pour la vérification des numéros de mobile.

Code :

using System;
using System.Text.RegularExpressions;
class Check {
static void Main(string[] args)
{
//Mobile numbers are given as a input to an array of strings
string[] nos = {"9902147368",
"9611967273", "63661820954"};
foreach(string s in nos)
{
Console.WriteLine("The mobile number {0} {1} a valid number.", s,
checkvalid(s) ? "is" : "is not");
}
Console.ReadKey();
}
// Regex expressions are verified through this code block
public static bool checkvalid(string Number)
{
string cRegex = @"(^[0-9]{10}$)|(^\+[0-9]{2}\s+[0-9]
{2}[0-9]{8}$)|(^[0-9]{3}-[0-9]{4}-[0-9]{4}$)";
Regex res = new Regex(cRegex);
if (res.IsMatch(Number))
return (true);
else
return (false);
}
}

Sortie :

Expression régulière en C#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Mot-clé virtuel en C# Article suivant:Mot-clé virtuel en C#