Group.Captures Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une collection de toutes les captures correspondant au groupe de capture, dans l'ordre du plus profond et du plus à gauche (ou dans l'ordre du plus profond et du plus à droite, si l'expression régulière est modifiée par l'option RightToLeft). La collection peut contenir entre zéro et plusieurs éléments.
public:
property System::Text::RegularExpressions::CaptureCollection ^ Captures { System::Text::RegularExpressions::CaptureCollection ^ get(); };
public System.Text.RegularExpressions.CaptureCollection Captures { get; }
member this.Captures : System.Text.RegularExpressions.CaptureCollection
Public ReadOnly Property Captures As CaptureCollection
Valeur de propriété
Collection de sous-chaînes correspondant au groupe.
Remarques
Si un quantificateur n’est pas appliqué à un groupe de capture, la collection retournée par la Captures propriété contient un objet unique Capture qui fournit des informations sur la même sous-chaîne que l’objet Group . L'exemple suivant illustre ce concept. Il définit une expression régulière, \b(\w+)\b
qui extrait un seul mot d’une phrase. L’objet Group capture le mot « This » et l’objet unique dans le CaptureCollection fichier contient des informations sur la même capture.
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b(\w+)\b";
string input = "This is one sentence.";
Match match = Regex.Match(input, pattern);
if (match.Success) {
Console.WriteLine("Matched text: {0}", match.Value);
for (int ctr = 1; ctr <= match.Groups.Count - 1; ctr++) {
Console.WriteLine(" Group {0}: {1}", ctr, match.Groups[ctr].Value);
int captureCtr = 0;
foreach (Capture capture in match.Groups[ctr].Captures) {
Console.WriteLine(" Capture {0}: {1}",
captureCtr, capture.Value);
captureCtr += 1;
}
}
}
}
}
// The example displays the following output:
// Matched text: This
// Group 1: This
// Capture 0: This
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b(\w+)\b"
Dim input As String = "This is one sentence."
Dim match As Match = Regex.Match(input, pattern)
If match.Success Then
Console.WriteLine("Matched text: {0}", match.Value)
For ctr As Integer = 1 To match.Groups.Count - 1
Console.WriteLine(" Group {0}: {1}", ctr, match.Groups(ctr).Value)
Dim captureCtr As Integer = 0
For Each capture As Capture In match.Groups(ctr).Captures
Console.WriteLine(" Capture {0}: {1}", _
captureCtr, capture.Value)
captureCtr += 1
Next
Next
End If
End Sub
End Module
' The example displays the following output:
' Matched text: This
' Group 1: This
' Capture 0: This
L’utilitaire réel de la Captures propriété se produit lorsqu’un quantificateur est appliqué à un groupe de capture afin que le groupe capture plusieurs sous-chaînes dans une seule expression régulière. Dans ce cas, l’objet Group contient des informations sur la dernière sous-chaîne capturée, tandis que la Captures propriété contient des informations sur toutes les sous-chaînes capturées par le groupe. Dans l’exemple suivant, l’expression \b(\w+\s*)+\.
régulière correspond à une phrase entière qui se termine par une période. Le groupe (\w+\s*)+
capture les mots individuels de la collection. Étant donné que la Group collection contient des informations uniquement sur la dernière sous-chaîne capturée, elle capture le dernier mot dans la phrase « phrase ». Toutefois, chaque mot capturé par le groupe est disponible à partir de la collection retournée par la Captures propriété.
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string input = "This is a sentence. This is another sentence.";
string pattern = @"\b(\w+\s*)+\.";
Match match = Regex.Match(input, pattern);
if (match.Success) {
Console.WriteLine("Matched text: {0}", match.Value);
for (int ctr = 1; ctr < match.Groups.Count; ctr++) {
Console.WriteLine(" Group {0}: {1}", ctr, match.Groups[ctr].Value);
int captureCtr = 0;
foreach (Capture capture in match.Groups[ctr].Captures) {
Console.WriteLine(" Capture {0}: {1}",
captureCtr, capture.Value);
captureCtr++;
}
}
}
}
}
// The example displays the following output:
// Matched text: This is a sentence.
// Group 1: sentence
// Capture 0: This
// Capture 1: is
// Capture 2: a
// Capture 3: sentence
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim input As String = "This is a sentence. This is another sentence."
Dim pattern As String = "\b(\w+\s*)+\."
Dim match As Match = Regex.Match(input, pattern)
If match.Success Then
Console.WriteLine("Matched text: {0}", match.Value)
For ctr As Integer = 1 To match.Groups.Count - 1
Console.WriteLine(" Group {0}: {1}", ctr, match.Groups(ctr).Value)
Dim captureCtr As Integer = 0
For Each capture As Capture In match.Groups(ctr).Captures
Console.WriteLine(" Capture {0}: {1}", _
captureCtr, capture.Value)
captureCtr += 1
Next
Next
End If
End Sub
End Module
' The example displays the following output:
' Matched text: This is a sentence.
' Group 1: sentence
' Capture 0: This
' Capture 1: is
' Capture 2: a
' Capture 3: sentence