Group 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 pojedynczej grupy przechwytywania.
public ref class Group : System::Text::RegularExpressions::Capture
public class Group : System.Text.RegularExpressions.Capture
[System.Serializable]
public class Group : System.Text.RegularExpressions.Capture
type Group = class
inherit Capture
[<System.Serializable>]
type Group = class
inherit Capture
Public Class Group
Inherits Capture
- Dziedziczenie
- Pochodne
- Atrybuty
Uwagi
Grupa przechwytywania może przechwytywać zero, jeden lub więcej ciągów w jednym dopasowaniu z powodu kwantyfikatorów. (Aby uzyskać więcej informacji, zobacz Quantifiers). Wszystkie podciągy dopasowane przez pojedynczą grupę przechwytywania są dostępne z Group.Captures właściwości. Informacje o ostatnim przechwyconym podciągu można uzyskać bezpośrednio z Value
właściwości i Index
. (Oznacza to, Group że wystąpienie jest równoważne ostatniemu elementowi kolekcji zwróconej przez Captures właściwość, co odzwierciedla ostatnie przechwycenie wykonane przez grupę przechwytywania).
Przykład pomaga wyjaśnić tę relację między obiektem Group a System.Text.RegularExpressions.CaptureCollection obiektem Captures zwracanym przez właściwość . Wzorzec (\b(\w+?)[,:;]?\s?)+[?.!]
wyrażenia regularnego pasuje do całych zdań. Wyrażenie regularne jest definiowane tak, jak pokazano w poniższej tabeli.
Wzorce | Opis |
---|---|
\b |
Rozpoczyna dopasowanie na granicy wyrazu. |
(\w+?) |
Dopasuj co najmniej jeden znak wyrazu, ale jak najwięcej znaków. Jest to druga (wewnętrzna) grupa przechwytywania. (Pierwsza grupa przechwytywania zawiera \b element języka). |
[,:;]? |
Dopasuj zero lub jedno wystąpienie przecinka, dwukropka lub średnika. |
\s? |
Dopasuj zero lub jedno wystąpienie znaku odstępu. |
(\b(\w+?)[,:;]?\s?)+ |
Dopasuj wzorzec składający się z granicy wyrazu, co najmniej jednego znaku słowa, symbolu interpunkcyjnego i znaku odstępu co najmniej jeden raz. Jest to pierwsza grupa przechwytywania. |
[?.!] |
Dopasuj dowolne wystąpienie kropki, znaku zapytania lub wykrzyknika. |
W tym wzorcu wyrażenia regularnego podwzorca (\w+?)
jest przeznaczony do dopasowania wielu wyrazów w zdaniu. Jednak wartość Group obiektu reprezentuje tylko ostatnie dopasowanie, które (\w+?)
przechwytuje, podczas gdy Captures właściwość zwraca wartość reprezentującą CaptureCollection cały przechwycony tekst. Jak pokazano w danych wyjściowych, CaptureCollection druga grupa przechwytywania zawiera cztery obiekty. Ostatni z nich odpowiada obiektowi Group .
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(\b(\w+?)[,:;]?\s?)+[?.!]";
string input = "This is one sentence. This is a second sentence.";
Match match = Regex.Match(input, pattern);
Console.WriteLine("Match: " + match.Value);
int groupCtr = 0;
foreach (Group group in match.Groups)
{
groupCtr++;
Console.WriteLine(" Group {0}: '{1}'", groupCtr, group.Value);
int captureCtr = 0;
foreach (Capture capture in group.Captures)
{
captureCtr++;
Console.WriteLine(" Capture {0}: '{1}'", captureCtr, capture.Value);
}
}
}
}
// The example displays the following output:
// Match: This is one sentence.
// Group 1: 'This is one sentence.'
// Capture 1: 'This is one sentence.'
// Group 2: 'sentence'
// Capture 1: 'This '
// Capture 2: 'is '
// Capture 3: 'one '
// Capture 4: 'sentence'
// Group 3: 'sentence'
// Capture 1: 'This'
// Capture 2: 'is'
// Capture 3: 'one'
// Capture 4: 'sentence'
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "(\b(\w+?)[,:;]?\s?)+[?.!]"
Dim input As String = "This is one sentence. This is a second sentence."
Dim match As Match = Regex.Match(input, pattern)
Console.WriteLine("Match: " + match.Value)
Dim groupCtr As Integer = 0
For Each group As Group In match.Groups
groupCtr += 1
Console.WriteLine(" Group {0}: '{1}'", groupCtr, group.Value)
Dim captureCtr As Integer = 0
For Each capture As Capture In group.Captures
captureCtr += 1
Console.WriteLine(" Capture {0}: '{1}'", captureCtr, capture.Value)
Next
Next
End Sub
End Module
' The example displays the following output:
' Match: This is one sentence.
' Group 1: 'This is one sentence.'
' Capture 1: 'This is one sentence.'
' Group 2: 'sentence'
' Capture 1: 'This '
' Capture 2: 'is '
' Capture 3: 'one '
' Capture 4: 'sentence'
' Group 3: 'sentence'
' Capture 1: 'This'
' Capture 2: 'is'
' Capture 3: 'one'
' Capture 4: 'sentence'
Właściwości
Captures |
Pobiera kolekcję wszystkich przechwytywania dopasowanych przez grupę przechwytywania w kolejności najbardziej od lewej do lewej (lub najwsłodszej od prawej do wewnątrz, jeśli wyrażenie regularne jest modyfikowane za RightToLeft pomocą opcji). Kolekcja może zawierać zero lub więcej elementów. |
Index |
Pozycja w oryginalnym ciągu, w którym znajduje się pierwszy znak przechwyconego podciągu. (Odziedziczone po Capture) |
Length |
Pobiera długość przechwyconego podciągu. (Odziedziczone po Capture) |
Name |
Zwraca nazwę grupy przechwytywania reprezentowanej przez bieżące wystąpienie. |
Success |
Pobiera wartość wskazującą, czy dopasowanie zakończyło się pomyślnie. |
Value |
Pobiera przechwycony podciąg z ciągu wejściowego. (Odziedziczone po Capture) |
ValueSpan |
Pobiera przechwycony zakres z ciągu wejściowego. (Odziedziczone po Capture) |
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 bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Synchronized(Group) |
Zwraca obiekt odpowiadający podanemu |
ToString() |
Pobiera przechwycony podciąg z ciągu wejściowego, wywołując Value właściwość . (Odziedziczone po Capture) |