GroupCollection.Item[] Właściwość
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.
Umożliwia dostęp do pojedynczego elementu członkowskiego kolekcji według liczby całkowitej lub indeksu ciągu.
Przeciążenia
Item[Int32] |
Umożliwia dostęp do elementu członkowskiego kolekcji według indeksu całkowitego. |
Item[String] |
Umożliwia dostęp do elementu członkowskiego kolekcji według indeksu ciągów. |
Item[Int32]
- Źródło:
- GroupCollection.cs
- Źródło:
- GroupCollection.cs
- Źródło:
- GroupCollection.cs
Umożliwia dostęp do elementu członkowskiego kolekcji według indeksu całkowitego.
public:
property System::Text::RegularExpressions::Group ^ default[int] { System::Text::RegularExpressions::Group ^ get(int groupnum); };
public System.Text.RegularExpressions.Group this[int groupnum] { get; }
member this.Item(int) : System.Text.RegularExpressions.Group
Default Public ReadOnly Property Item(groupnum As Integer) As Group
Parametry
- groupnum
- Int32
Indeks zera elementu członkowskiego kolekcji do pobrania.
Wartość właściwości
Element członkowski kolekcji określony przez groupnum
.
Implementuje
Przykłady
W poniższym przykładzie zdefiniowano wyrażenie regularne składające się z dwóch grup numerowanych. Pierwsza grupa przechwytuje co najmniej jedną kolejną cyfrę. Druga grupa pasuje do pojedynczego znaku. Ponieważ aparat wyrażeń regularnych szuka zera lub jednego wystąpienia pierwszej grupy, nie zawsze znajduje dopasowanie, nawet jeśli dopasowanie wyrażenia regularnego powiedzie się. W tym przykładzie pokazano wynik, gdy Item[Int32] właściwość jest używana do pobierania niedopasowanej grupy, dopasowanej grupy i grupy, która nie jest zdefiniowana w wyrażeniu regularnym. W przykładzie zdefiniowano wzorzec (\d+)*(\w)\2
wyrażenia regularnego, który jest interpretowany w sposób pokazany w poniższej tabeli.
Wzorce | Opis |
---|---|
(\d+)* |
Dopasuj jedno lub więcej wystąpień cyfry dziesiętnej. Jest to pierwsza grupa przechwytywania. Dopasuj ten wzorzec zero lub jeden raz. |
(\w) |
Jest to druga grupa przechwytywania. |
\k |
Dopasuj ciąg przechwycony przez drugą grupę przechwytywania. |
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(\d+)*(\w)\2";
string input = "AA";
Match match = Regex.Match(input, pattern);
// Get the first named group.
Group group1 = match.Groups[1];
Console.WriteLine("Group 1 value: {0}", group1.Success ? group1.Value : "Empty");
// Get the second named group.
Group group2 = match.Groups[2];
Console.WriteLine("Group 2 value: {0}", group2.Success ? group2.Value : "Empty");
// Get a non-existent group.
Group group3 = match.Groups[3];
Console.WriteLine("Group 3 value: {0}", group3.Success ? group3.Value : "Empty");
}
}
// The example displays the following output:
// Group 1 value: Empty
// Group 2 value: A
// Group 3 value: Empty
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "(\d+)*(\w)\2"
Dim input As String = "AA"
Dim match As Match = Regex.Match(input, pattern)
' Get the first named group.
Dim group1 As Group = match.Groups.Item(1)
Console.WriteLine("Group 1 value: {0}", If(group1.Success, group1.Value, "Empty"))
' Get the second named group.
Dim group2 As Group = match.Groups.Item(2)
Console.WriteLine("Group 2 value: {0}", If(group2.Success, group2.Value, "Empty"))
' Get a non-existent group.
Dim group3 As Group = match.Groups.Item(3)
Console.WriteLine("Group 3 value: {0}", If(group3.Success, group3.Value, "Empty"))
End Sub
End Module
' The example displays the following output:
' Group 1 value: Empty
' Group 2 value: A
' Group 3 value: Empty
Uwagi
Właściwość Item[Int32] jest indeksem (w języku C#) lub właściwością domyślną (w Visual Basic) GroupCollection klasy. Umożliwia wyliczanie elementów członkowskich kolekcji przy użyciu foreach
instrukcji w języku C# lub For Each
instrukcji w języku Visual Basic.
Tej właściwości można również użyć do pobierania poszczególnych przechwyconych grup według ich numeru indeksu. Tablicę zawierającą liczby wszystkich grup przechwytywania w wyrażeniu regularnym można pobrać, wywołując metodę wystąpienia Regex.GetGroupNumbers . Można również mapować nazwy przechwytywania grup na ich numery, wywołując metodę wystąpienia Regex.GroupNumberFromName .
Liczbę elementów w kolekcji można określić, pobierając wartość Count właściwości. Prawidłowe wartości dla zakresu parametrów groupnum
z zakresu od 0 do jednego mniejszego niż liczba elementów w kolekcji.
GroupCollection Obiekt zwrócony przez Match.Groups właściwość zawsze ma co najmniej jeden element członkowski. Jeśli aparat wyrażeń regularnych nie może znaleźć żadnych dopasowań w określonym ciągu wejściowym, pojedynczy Group obiekt w kolekcji ma właściwość Group.Success ustawioną na false
, a jej Group.Value
właściwość ustawiona na String.Empty.
Jeśli groupnum
nie jest indeksem elementu członkowskiego kolekcji lub groupnum
jeśli jest indeksem grupy przechwytywania, która nie została dopasowana w ciągu wejściowym, metoda zwraca Group obiekt, którego Group.Success właściwość jest false
i której Group.Value
właściwość ma String.Emptywartość .
Zobacz też
Dotyczy
Item[String]
- Źródło:
- GroupCollection.cs
- Źródło:
- GroupCollection.cs
- Źródło:
- GroupCollection.cs
Umożliwia dostęp do elementu członkowskiego kolekcji według indeksu ciągów.
public:
property System::Text::RegularExpressions::Group ^ default[System::String ^] { System::Text::RegularExpressions::Group ^ get(System::String ^ groupname); };
public System.Text.RegularExpressions.Group this[string groupname] { get; }
member this.Item(string) : System.Text.RegularExpressions.Group
Default Public ReadOnly Property Item(groupname As String) As Group
Parametry
- groupname
- String
Nazwa grupy przechwytywania.
Wartość właściwości
Element członkowski kolekcji określony przez groupname
.
Implementuje
Przykłady
W poniższym przykładzie zdefiniowano wyrażenie regularne składające się z dwóch nazwanych grup. Pierwsza grupa przechwytuje numbers
co najmniej jedną kolejną cyfrę. Druga grupa, , letter
pasuje do pojedynczego znaku. Ponieważ aparat wyrażeń regularnych szuka zera lub jednego wystąpienia wzorca zdefiniowanego przez grupę numbers
, numbers
grupa nie zawsze jest obecna, nawet jeśli dopasowanie zakończy się pomyślnie. W tym przykładzie pokazano wynik, gdy Item[String] właściwość jest używana do pobierania niedopasowanej grupy, dopasowanej grupy i grupy, która nie jest zdefiniowana w wyrażeniu regularnym. W przykładzie zdefiniowano wzorzec (?<numbers>\d+)*(?<letter>\w)\k<letter>
wyrażenia regularnego, który jest interpretowany w sposób pokazany w poniższej tabeli.
Wzorce | Opis |
---|---|
(?<numbers>\d+)* |
Dopasuj jedno lub więcej wystąpień cyfry dziesiętnej. Nadaj tej nazwie grupę przechwytywania numbers . Dopasuj ten wzorzec zero lub jeden raz. |
(?<letter>\w) |
Dopasuj pojedynczy znak wyrazu. Nadaj tej nazwie grupę przechwytywania letter . |
\k<letter> |
Dopasuj ciąg przechwycony przez grupę przechwytywania letter . |
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<numbers>\d+)*(?<letter>\w)\k<letter>";
string input = "AA";
Match match = Regex.Match(input, pattern);
// Get the first named group.
Group group1 = match.Groups["numbers"];
Console.WriteLine("Group 'numbers' value: {0}", group1.Success ? group1.Value : "Empty");
// Get the second named group.
Group group2 = match.Groups["letter"];
Console.WriteLine("Group 'letter' value: {0}", group2.Success ? group2.Value : "Empty");
// Get a non-existent group.
Group group3 = match.Groups["none"];
Console.WriteLine("Group 'none' value: {0}", group3.Success ? group3.Value : "Empty");
}
}
// The example displays the following output:
// Group 'numbers' value: Empty
// Group 'letter' value: A
// Group 'none' value: Empty
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "(?<numbers>\d+)*(?<letter>\w)\k<letter>"
Dim input As String = "AA"
Dim match As Match = Regex.Match(input, pattern)
' Get the first named group.
Dim group1 As Group = match.Groups.Item("numbers")
Console.WriteLine("Group 'numbers' value: {0}", If(group1.Success, group1.Value, "Empty"))
' Get the second named group.
Dim group2 As Group = match.Groups.Item("letter")
Console.WriteLine("Group 'letter' value: {0}", If(group2.Success, group2.Value, "Empty"))
' Get a non-existent group.
Dim group3 As Group = match.Groups.Item("none")
Console.WriteLine("Group 'none' value: {0}", If(group3.Success, group3.Value, "Empty"))
End Sub
End Module
' The example displays the following output:
' Group 'numbers' value: Empty
' Group 'letter' value: A
' Group 'none' value: Empty
Uwagi
groupName
może być nazwą grupy przechwytywania zdefiniowanej przez (?<
element name>)
w wyrażeniu regularnym lub reprezentacją ciągu liczby grupy przechwytywania zdefiniowanej przez konstrukcję grupowania. Aby uzyskać więcej informacji na temat grup w wyrażeniach regularnych, zobacz Grupowanie konstrukcji.
Nazwy wszystkich przechwyconych grup w Regex obiekcie można pobrać, wywołując metodę Regex.GetGroupNames . Można również mapować liczby przechwytujących grupy w wyrażeniu regularnym na ich nazwy, wywołując metodę Regex.GroupNameFromNumber . Poszczególne nazwy z tablicy można następnie przekazać do właściwości w Item[String] celu pobrania przechwyconego ciągu.
Jeśli groupname
nie jest nazwą grupy przechwytywania w kolekcji lub jeśli groupname
jest nazwą grupy przechwytywania, która nie została dopasowana w ciągu wejściowym, metoda zwraca Group obiekt, którego Group.Success właściwość jest false
i której Group.Value
właściwość to String.Empty.