Group.Captures Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera kolekcję wszystkich przechwytywania dopasowanych przez grupę przechwytywania w kolejności najbardziej od lewej do lewej (lub najwsłodszej od prawej do wewnątrz, jeśli wyrażenie regularne jest modyfikowane za RightToLeft pomocą opcji). Kolekcja może zawierać zero lub więcej elementów.
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
Wartość właściwości
Kolekcja podciągów dopasowanych przez grupę.
Uwagi
Jeśli kwantyfikator nie jest stosowany do grupy przechwytywania, kolekcja zwrócona przez Captures właściwość zawiera pojedynczy Capture obiekt, który zawiera informacje o tym samym podciągu co Group obiekt. Jest to zilustrowane w poniższym przykładzie. Definiuje wyrażenie regularne , \b(\w+)\b
które wyodrębnia pojedyncze słowo z zdania. Obiekt Group przechwytuje słowo "This", a pojedynczy obiekt w obiekcie CaptureCollection zawiera informacje o tym samym przechwyceniu.
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
Rzeczywiste narzędzie Captures właściwości występuje, gdy kwantyfikator jest stosowany do grupy przechwytywania, dzięki czemu grupa przechwytuje wiele podciągów w jednym wyrażeniu regularnym. W takim przypadku Group obiekt zawiera informacje o ostatnim przechwyconym podciągu, natomiast Captures właściwość zawiera informacje o wszystkich podciągach przechwyconych przez grupę. W poniższym przykładzie wyrażenie \b(\w+\s*)+\.
regularne pasuje do całego zdania kończącego się kropką. Grupa (\w+\s*)+
przechwytuje poszczególne wyrazy w kolekcji. Group Ponieważ kolekcja zawiera tylko informacje o ostatnim przechwyconym podciągu, przechwytuje ostatnie słowo w zdaniu "zdanie". Jednak każde słowo przechwycone przez grupę jest dostępne z kolekcji zwróconej Captures przez właściwość.
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