GroupCollection.Item[] Eigenschaft

Definition

Ermöglicht den Zugriff auf einen einzelnen Member der Auflistung über einen Ganzzahlen- oder Zeichenfolgenindex.

Überlädt

Item[Int32]

Ermöglicht den Zugriff auf einen Member der Auflistung über einen Ganzzahlenindex.

Item[String]

Ermöglicht den Zugriff auf einen Member der Auflistung über einen Zeichenfolgenindex.

Item[Int32]

Ermöglicht den Zugriff auf einen Member der Auflistung über einen Ganzzahlenindex.

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

Parameter

groupnum
Int32

Der nullbasierte Index des Auflistungsmembers, der abgerufen werden soll.

Eigenschaftswert

Group

Der Member der Auflistung, die durch groupnum angegeben wird.

Implementiert

Beispiele

Im folgenden Beispiel wird ein regulärer Ausdruck definiert, der aus zwei nummerierten Gruppen besteht. Die erste Gruppe erfasst eine oder mehrere aufeinanderfolgende Ziffern. Die zweite Gruppe entspricht einem einzelnen Zeichen. Da die Engine für reguläre Ausdrücke nach null oder einem Vorkommen der ersten Gruppe sucht, findet sie nicht immer eine Übereinstimmung, auch wenn die Übereinstimmung mit dem regulären Ausdruck erfolgreich ist. Das Beispiel veranschaulicht dann das Ergebnis, wenn die Item[Int32] -Eigenschaft verwendet wird, um eine nicht übereinstimmende Gruppe, eine übereinstimmende Gruppe und eine Gruppe abzurufen, die nicht im regulären Ausdruck definiert ist. Im Beispiel wird ein Muster (\d+)*(\w)\2für reguläre Ausdrücke definiert, das wie in der folgenden Tabelle dargestellt interpretiert wird.

Muster Beschreibung
(\d+)* Entspricht mindestens einem Vorkommen einer Dezimalzahl. Dies ist die erste Erfassungsgruppe. Entspricht diesem Muster entweder 0 oder einmal.
(\w) Dies ist die zweite Erfassungsgruppe.
\k Entspricht der Zeichenfolge, die von der zweiten Erfassungsgruppe erfasst wurde.
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

Hinweise

Die Item[Int32] Eigenschaft ist der Index (in C#) oder die Standardeigenschaft (in Visual Basic) der GroupCollection Klasse. Sie können die Elemente der Auflistung mithilfe einer Anweisung in C# oder einer foreachFor Each Anweisung in Visual Basic auflisten.

Sie können diese Eigenschaft auch verwenden, um einzelne erfasste Gruppen nach ihrer Indexnummer abzurufen. Sie können ein Array abrufen, das die Zahlen aller Erfassungsgruppen in einem regulären Ausdruck enthält, indem Sie die Instanzmethode Regex.GetGroupNumbers aufrufen. Sie können auch benannte Erfassungsgruppen ihren Zahlen zuordnen, indem Sie die Instanzmethode Regex.GroupNumberFromName aufrufen.

Sie können die Anzahl der Elemente in der Auflistung bestimmen, indem Sie den Wert der Count -Eigenschaft abrufen. Gültige Werte für den groupnum Parameter reichen von 0 bis eins kleiner als die Anzahl der Elemente in der Auflistung.

Das GroupCollection von der Match.Groups -Eigenschaft zurückgegebene Objekt verfügt immer über mindestens ein Element. Wenn die Engine für reguläre Ausdrücke keine Übereinstimmungen in einer bestimmten Eingabezeichenfolge finden kann, wird für das einzelne Group Objekt in der Auflistung seine Group.Success -Eigenschaft auf false und seine Group.Value -Eigenschaft auf String.Emptyfestgelegt.

Wenn groupnum nicht der Index eines Members der Auflistung ist oder der groupnum Index einer Erfassungsgruppe ist, der nicht in der Eingabezeichenfolge abgeglichen wurde, gibt die -Methode ein Group -Objekt zurück, dessen Group.Success -Eigenschaft ist false und dessen Group.Value -Eigenschaft ist String.Empty.

Siehe auch

Gilt für

Item[String]

Ermöglicht den Zugriff auf einen Member der Auflistung über einen Zeichenfolgenindex.

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

Parameter

groupname
String

Der Name der Erfassungsgruppe.

Eigenschaftswert

Group

Der Member der Auflistung, die durch groupname angegeben wird.

Implementiert

Beispiele

Im folgenden Beispiel wird ein regulärer Ausdruck definiert, der aus zwei benannten Gruppen besteht. Die erste Gruppe erfasst numberseine oder mehrere aufeinanderfolgende Ziffern. Die zweite Gruppe , letterentspricht einem einzelnen Zeichen. Da die Engine für reguläre Ausdrücke nach null oder einem Vorkommen des von der numbers Gruppe definierten Musters sucht, ist die numbers Gruppe nicht immer vorhanden, auch wenn eine Übereinstimmung erfolgreich ist. Das Beispiel veranschaulicht dann das Ergebnis, wenn die Item[String] -Eigenschaft verwendet wird, um eine nicht übereinstimmende Gruppe, eine übereinstimmende Gruppe und eine Gruppe abzurufen, die nicht im regulären Ausdruck definiert ist. Im Beispiel wird ein Muster (?<numbers>\d+)*(?<letter>\w)\k<letter>für reguläre Ausdrücke definiert, das wie in der folgenden Tabelle dargestellt interpretiert wird.

Muster Beschreibung
(?<numbers>\d+)* Entspricht mindestens einem Vorkommen einer Dezimalzahl. Nennen Sie die numbers Erfassungsgruppe. Entspricht diesem Muster entweder 0 oder einmal.
(?<letter>\w) Übereinstimmung mit einem einzelnen Wortzeichen. Nennen Sie die letter Erfassungsgruppe.
\k<letter> Entspricht der Zeichenfolge, die von der letter Erfassungsgruppe erfasst wurde.
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

Hinweise

groupName kann entweder der Name einer Erfassungsgruppe sein, die durch das (?<name-Element>) in einem regulären Ausdruck definiert wird, oder die Zeichenfolgendarstellung der Anzahl einer Erfassungsgruppe, die durch ein Gruppierungskonstrukt definiert wird. Weitere Informationen zu Gruppen in regulären Ausdrücken finden Sie unter Gruppieren von Konstrukten.

Sie können die Namen aller erfassten Gruppen in einem Regex -Objekt abrufen, indem Sie die Regex.GetGroupNames -Methode aufrufen. Sie können auch die Anzahl der Erfassungsgruppen in einem regulären Ausdruck ihren Namen zuordnen, indem Sie die Regex.GroupNameFromNumber -Methode aufrufen. Einzelne Namen aus dem Array können dann an die Item[String] -Eigenschaft übergeben werden, um die erfasste Zeichenfolge abzurufen.

Wenn groupname nicht der Name einer Erfassungsgruppe in der Auflistung ist, oder wenn groupname der Name einer Erfassungsgruppe ist, der nicht in der Eingabezeichenfolge abgeglichen wurde, gibt die Methode ein Group Objekt zurück, dessen Group.Success Eigenschaft false ist und dessen Group.Value Eigenschaft ist String.Empty.

Siehe auch

Gilt für