Capture Klasa
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.
Reprezentuje wyniki z pojedynczego pomyślnego przechwytywania podwyrażenia.
public ref class Capture
public class Capture
[System.Serializable]
public class Capture
type Capture = class
[<System.Serializable>]
type Capture = class
Public Class Capture
- Dziedziczenie
-
Capture
- Pochodne
- Atrybuty
Przykłady
W poniższym przykładzie zdefiniowano wyrażenie regularne, które pasuje do zdań, które nie zawierają znaków interpunkcyjnych z wyjątkiem kropki (".").
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string input = "Yes. This dog is very friendly.";
string pattern = @"((\w+)[\s.])+";
foreach (Match match in Regex.Matches(input, pattern))
{
Console.WriteLine("Match: {0}", match.Value);
for (int groupCtr = 0; groupCtr < match.Groups.Count; groupCtr++)
{
Group group = match.Groups[groupCtr];
Console.WriteLine(" Group {0}: {1}", groupCtr, group.Value);
for (int captureCtr = 0; captureCtr < group.Captures.Count; captureCtr++)
Console.WriteLine(" Capture {0}: {1}", captureCtr,
group.Captures[captureCtr].Value);
}
}
}
}
// The example displays the following output:
// Match: Yes.
// Group 0: Yes.
// Capture 0: Yes.
// Group 1: Yes.
// Capture 0: Yes.
// Group 2: Yes
// Capture 0: Yes
// Match: This dog is very friendly.
// Group 0: This dog is very friendly.
// Capture 0: This dog is very friendly.
// Group 1: friendly.
// Capture 0: This
// Capture 1: dog
// Capture 2: is
// Capture 3: very
// Capture 4: friendly.
// Group 2: friendly
// Capture 0: This
// Capture 1: dog
// Capture 2: is
// Capture 3: very
// Capture 4: friendly
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim input As String = "Yes. This dog is very friendly."
Dim pattern As String = "((\w+)[\s.])+"
For Each match As Match In Regex.Matches(input, pattern)
Console.WriteLine("Match: {0}", match.Value)
For groupCtr As Integer = 0 To match.Groups.Count - 1
Dim group As Group = match.Groups(groupCtr)
Console.WriteLine(" Group {0}: {1}", groupCtr, group.Value)
For captureCtr As Integer = 0 To group.Captures.Count - 1
Console.WriteLine(" Capture {0}: {1}", captureCtr, _
group.Captures(captureCtr).Value)
Next
Next
Next
End Sub
End Module
' The example displays the following output:
' Match: Yes.
' Group 0: Yes.
' Capture 0: Yes.
' Group 1: Yes.
' Capture 0: Yes.
' Group 2: Yes
' Capture 0: Yes
' Match: This dog is very friendly.
' Group 0: This dog is very friendly.
' Capture 0: This dog is very friendly.
' Group 1: friendly.
' Capture 0: This
' Capture 1: dog
' Capture 2: is
' Capture 3: very
' Capture 4: friendly.
' Group 2: friendly
' Capture 0: This
' Capture 1: dog
' Capture 2: is
' Capture 3: very
' Capture 4: friendly
Wzorzec ((\w+)[\s.])+
wyrażenia regularnego jest zdefiniowany, jak pokazano w poniższej tabeli. Należy pamiętać, że w tym wyrażeniu regularnym do całego wyrażenia regularnego jest stosowany kwantyfikator (+).
Wzorce | Opis |
---|---|
(\w+) |
Dopasowuje co najmniej jeden znak słowa. Jest to druga grupa przechwytywania. |
[\s.]) |
Dopasuj znak lub kropkę ("."). |
((\w+)[\s.]) |
Dopasuj co najmniej jeden znak wyrazu, po którym następuje znak lub kropka ("."). Jest to pierwsza grupa przechwytywania. |
((\w+)[\s.])+ |
Dopasuj co najmniej jedno wystąpienie znaku lub znaków wyrazu, po którym następuje znak lub kropka ("."). |
W tym przykładzie ciąg wejściowy składa się z dwóch zdań. Jak pokazano w danych wyjściowych, pierwsze zdanie składa się tylko z jednego wyrazu, więc CaptureCollection obiekt ma jeden Capture obiekt, który reprezentuje to samo przechwytywanie co Group obiekt. Drugie zdanie składa się z wielu wyrazów, więc Group obiekty zawierają tylko informacje o ostatnim dopasowanym podrażeniu. Grupa 1, która reprezentuje pierwsze przechwytywanie, zawiera ostatnie słowo w zdaniu, które ma okres zamknięcia. Grupa 2, która reprezentuje drugie przechwytywanie, zawiera ostatnie słowo w zdaniu. Capture Jednak obiekty w obiekcie grupy CaptureCollection przechwytują każde dopasowanie podwyrażenia. Obiekty Capture w pierwszej grupie przechwytywania kolekcji przechwytywania zawierają informacje o każdym przechwyconym słowie i białym znaku lub kropki. Obiekty Capture w drugiej grupie przechwytywania kolekcji przechwytywania zawierają informacje o każdym przechwyconym słowie.
Uwagi
Capture Obiekt jest niezmienny i nie ma publicznego konstruktora. Wystąpienia są zwracane za pośrednictwem CaptureCollection obiektu, który jest zwracany przez Match.Captures
właściwości i Group.Captures . Match.Captures
Jednak właściwość zawiera informacje o tym samym dopasowaniu Match co obiekt.
Jeśli nie zastosujesz kwantyfikatora do grupy przechwytywania, Group.Captures właściwość zwróci CaptureCollection obiekt z pojedynczym Capture obiektem, który zawiera informacje o tym samym przechwyceniu co Group obiekt. Jeśli zastosujesz kwantyfikator do grupy przechwytywania, Group.Index
właściwości , Group.Length
i Group.Value
podają informacje tylko o ostatniej przechwyconej grupie, podczas gdy Capture obiekty w podwyrażeniu CaptureCollection zawierają informacje o wszystkich przechwytywaniu podwyrażenia. Przykład stanowi ilustrację.
Właściwości
Index |
Pozycja w oryginalnym ciągu, w którym znajduje się pierwszy znak przechwyconego podciągu. |
Length |
Pobiera długość przechwyconego podciągu. |
Value |
Pobiera przechwycony podciąg z ciągu wejściowego. |
ValueSpan |
Pobiera przechwycony zakres z ciągu wejściowego. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Pobiera przechwycony podciąg z ciągu wejściowego, wywołując Value właściwość . |