Sdílet prostřednictvím


Capture Třída

Definice

Představuje výsledky jednoho úspěšného zachycení dílčího výrazu.

public ref class Capture
public class Capture
[System.Serializable]
public class Capture
type Capture = class
[<System.Serializable>]
type Capture = class
Public Class Capture
Dědičnost
Capture
Odvozené
Atributy

Příklady

Následující příklad definuje regulární výraz, který odpovídá větám, které neobsahují žádnou interpunkci s výjimkou tečky (".").

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

Vzor regulárního výrazu ((\w+)[\s.])+ je definován tak, jak je znázorněno v následující tabulce. Všimněte si, že v tomto regulárním výrazu se u celého regulárního výrazu použije kvantifikátor (+).

Vzor Description
(\w+) Porovná jeden nebo více znaků slova. Toto je druhá zachytávající skupina.
[\s.]) Porovná prázdný znak nebo tečku (".").
((\w+)[\s.]) Porovná jeden nebo více znaků slova následovaného prázdným znakem nebo tečkou ("."). Toto je první zachytávající skupina.
((\w+)[\s.])+ Porovná jeden nebo více výskytů znaku slova nebo znaků následovaných prázdným znakem nebo tečkou (".").

V tomto příkladu se vstupní řetězec skládá ze dvou vět. Jak ukazuje výstup, první věta se skládá pouze z jednoho slova, takže CaptureCollection objekt má jeden Capture objekt, který představuje stejný zachycení jako Group objekt. Druhá věta se skládá z více slov, takže Group objekty obsahují pouze informace o posledním odpovídajícím dílčím výrazu. Skupina 1, která představuje první zachycení, obsahuje poslední slovo ve větě, která má pravou tečku. Skupina 2, která představuje druhý záznam, obsahuje poslední slovo ve větě. Objekty Capture v objektu CaptureCollection skupiny ale zachytí jednotlivé dílčí výrazy. Objekty Capture v první kolekci zachycených skupin obsahují informace o jednotlivých zachycených slovech a prázdných znacích nebo tečkách. Objekty Capture v druhé kolekci zachycených skupin obsahují informace o jednotlivých zachycených slovech.

Poznámky

Objekt Capture je neměnný a nemá žádný veřejný konstruktor. Instance se vrátí prostřednictvím objektu CaptureCollection , který je vrácen vlastnostmi Match.Captures a Group.Captures vlastnostmi. Vlastnost Match.Captures však poskytuje informace o stejné shodě jako Match objekt.

Pokud u zachytávání skupiny nepoužijete kvantifikátor, Group.Captures vrátí vlastnost jeden Capture objekt, který poskytuje informace o stejném zachycení jako Group CaptureCollection objekt. Pokud použijete kvantifikátor na zachytávací skupinu, Group.Index``Group.Lengthvlastnosti a Group.Value vlastnosti poskytují informace pouze o poslední zachycené skupině, zatímco Capture objekty v CaptureCollection poskytnutí informací o všech zachyceních dílčích výrazů. Příklad uvádí ukázku.

Vlastnosti

Index

Pozice v původním řetězci, kde je nalezen první znak zachyceného podřetězce.

Length

Získá délku zachyceného podřetětce.

Value

Získá zachycený podřetězce ze vstupního řetězce.

ValueSpan

Získá zachycené rozpětí ze vstupního řetězce.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Načte zachycený podřetězce ze vstupního řetězce voláním Value vlastnosti.

Platí pro

Viz také