Udostępnij za pośrednictwem


Capture Klasa

Definicja

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.Indexwłaściwości , Group.Lengthi 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ść .

Dotyczy

Zobacz też