Maison > développement back-end > C++ > Comment fonctionnent les groupes d'expressions régulières en C# ?

Comment fonctionnent les groupes d'expressions régulières en C# ?

Patricia Arquette
Libérer: 2024-10-29 12:28:02
original
303 Les gens l'ont consulté

How do Regular Expression Groups Work in C#?

Groupes d'expressions régulières en C#

Dans le bloc de code suivant, l'expression régulière fournie extrait le contenu entre crochets :

var pattern = @"\[(.*?)\]";
var matches = Regex.Matches(user, pattern);
Copier après la connexion

Avec l'entrée user == "Josh Smith [jsmith]":

matches.Count == 1
matches[0].Value == "[jsmith]"
Copier après la connexion

Cependant, matches[0].Groups.Count == 2, avec :

matches[0].Groups[0].Value == "[jsmith]"
matches[0].Groups[1].Value == "jsmith"
Copier après la connexion

Comprendre la collection de groupes

  • match.Groups[0] contient toujours la correspondance entière, identique à match.Value.
  • match.Groups[1 ] capture le premier groupe de l'expression régulière.

Dans ce cas :

  • le motif est défini comme @"[(.*?)]", où (. *?) est le groupe de capture.
  • L'expression rationnelle correspond à l'intégralité de la chaîne entre crochets ainsi qu'au contenu entre parenthèses.

Par conséquent, match.Groups[1]. Value récupère le contenu entre parenthèses, "jsmith".

Nombre de groupes dans une correspondance

Les règles suivantes régissent le nombre de groupes dans une correspondance :

  • Chaque correspondance a un seul groupe à l'index 0, qui correspond toujours à la correspondance entière.
  • Le nombre de groupes supplémentaires dépend des groupes de capture définis dans l'expression régulière.
  • Si aucun groupe de capture n'est défini, la correspondance n'aura qu'un seul groupe.

Dans l'exemple fourni, puisque le modèle contient un groupe de capture, match.Groups.Count sera toujours 2. Cependant, des expressions régulières plus complexes avec plusieurs groupes de capture entraîneront un plus grand nombre de groupes.

Exemples supplémentaires

Considérez le modèle suivant et faites correspondre :

var pattern = @"\[(.*?)\](.*)";
var match = Regex.Match("ignored [john] John Johnson", pattern);
Copier après la connexion
  • match.Value est "[john] John Johnson".
  • match.Groups[0] est "[john] John Johnson".
  • match.Groups[1 ] est [john].
  • match.Groups[2] est John Johnson.

Dans un modèle plus complexe :

var pattern = @"(\[.*?\])+";
var match = Regex.Match("[john][johnny]", pattern);
Copier après la connexion
  • match .La valeur est "[john][johnny]".
  • match.Groups[0] est "[john][johnny]".
  • match.Groups[1] est [john] [johnny].
  • match.Groups[1].Captures[0] est [john].
  • match.Groups[1].Captures[1] est [johnny].

Comprendre ces concepts est crucial pour exploiter la puissance des groupes d'expressions régulières 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal