Group.Captures Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene una raccolta di tutte le acquisizioni rilevate dal gruppo di acquisizione, nel primo ordine più interno e più a sinistra (o nel primo ordine più interno e più a destra se l'espressione regolare viene modificata con l'opzione RightToLeft). La raccolta può avere zero o più elementi.
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
Valore della proprietà
Raccolta delle sottostringhe individuate dal gruppo.
Commenti
Se un quantificatore non viene applicato a un gruppo di acquisizione, la raccolta restituita dalla Captures proprietà contiene un singolo Capture oggetto che fornisce informazioni sulla stessa sottostringa dell'oggetto Group . Questo è illustrato nell'esempio seguente. Definisce un'espressione regolare, , \b(\w+)\b
che estrae una singola parola da una frase. L'oggetto Group acquisisce la parola "This" e l'oggetto singolo nell'oggetto CaptureCollection contiene informazioni sulla stessa acquisizione.
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'utilità Captures reale della proprietà si verifica quando un quantificatore viene applicato a un gruppo di acquisizione in modo che il gruppo acquisisca più sottostringa in un'unica espressione regolare. In questo caso, l'oggetto Group contiene informazioni sull'ultima sottostringa acquisita, mentre la Captures proprietà contiene informazioni su tutte le sottostringa acquisite dal gruppo. Nell'esempio seguente l'espressione regolare corrisponde a un'intera frase \b(\w+\s*)+\.
che termina in un punto. Il gruppo (\w+\s*)+
acquisisce le singole parole nella raccolta. Poiché la Group raccolta contiene informazioni solo sull'ultima sottostringa acquisita, acquisisce l'ultima parola nella frase "frase". Tuttavia, ogni parola acquisita dal gruppo è disponibile dalla raccolta restituita dalla Captures proprietà .
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