Capture Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.Length
vlastnosti 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. |