GroupCollection.Item[] Właściwość

Definicja

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]

Source:
GroupCollection.cs
Source:
GroupCollection.cs
Source:
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)\2wyraż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]

Source:
GroupCollection.cs
Source:
GroupCollection.cs
Source:
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 numbersco najmniej jedną kolejną cyfrę. Druga grupa, , letterpasuje 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

groupNamemoż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.

Zobacz też

Dotyczy