Capture Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar resultatet från en enda lyckad underuttrycksinsamling.
public ref class Capture
public class Capture
[System.Serializable]
public class Capture
type Capture = class
[<System.Serializable>]
type Capture = class
Public Class Capture
- Arv
-
Capture
- Härledda
- Attribut
Exempel
I följande exempel definieras ett reguljärt uttryck som matchar meningar som inte innehåller någon skiljetecken förutom en punkt (".").
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
Mönster för ((\w+)[\s.])+ reguljära uttryck definieras enligt följande tabell. Observera att i det här reguljära uttrycket tillämpas en kvantifierare (+) på hela det reguljära uttrycket.
| Mönster | Description |
|---|---|
(\w+) |
Matcha ett eller flera ordtecken. Det här är den andra fångstgruppen. |
[\s.]) |
Matcha ett blankstegstecken eller punkt ("."). |
((\w+)[\s.]) |
Matcha ett eller flera ordtecken följt av ett blankstegstecken eller punkt ("."). Det här är den första fångstgruppen. |
((\w+)[\s.])+ |
Matcha en eller flera förekomster av ett ordtecken eller tecken följt av ett blankstegstecken eller punkt ("."). |
I det här exemplet består indatasträngen av två meningar. Som utdata visar består den första meningen bara av ett ord, så CaptureCollection objektet har ett enda Capture objekt som representerar samma avbildning som Group objektet. Den andra meningen består av flera ord, så objekten Group innehåller bara information om den senast matchade underuttrycket. Grupp 1, som representerar den första avbildningen, innehåller det sista ordet i meningen som har en avslutande period. Grupp 2, som representerar den andra avbildningen, innehåller det sista ordet i meningen. Objekten Capture i gruppens CaptureCollection objekt avbildar dock varje underuttrycksmatchning. Objekten Capture i den första insamlingsgruppens samling av avbildningar innehåller information om varje insamlat ord och blankstegstecken eller punkt. Objekten Capture i den andra insamlingsgruppens samling av avbildningar innehåller information om varje insamlat ord.
Kommentarer
Ett Capture objekt är oföränderligt och har ingen offentlig konstruktor. Instanser returneras via CaptureCollection objektet, som returneras av Match.Captures egenskaperna och Group.Captures . Egenskapen innehåller dock Match.Captures information om samma matchning som objektet Match .
Om du inte tillämpar en kvantifierare på en insamlingsgrupp Group.Captures returnerar egenskapen ett CaptureCollection med ett enda Capture objekt som innehåller information om samma avbildning som objektet Group . Om du använder en kvantifierare för en insamlingsgrupp ger Group.Indexegenskaperna , Group.Length, och Group.Value endast information om den senast insamlade gruppen, medan objekten CaptureCaptureCollection i innehåller information om alla underuttrycksinsamlingar. Exemplet innehåller en bild.
Egenskaper
| Name | Description |
|---|---|
| Index |
Positionen i den ursprungliga strängen där det första tecknet i den insamlade delsträngen hittas. |
| Length |
Hämtar längden på den insamlade delsträngen. |
| Value |
Hämtar den insamlade delsträngen från indatasträngen. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Hämtar den insamlade delsträngen från indatasträngen genom att anropa Value egenskapen. |