GroupCollection.Item[] Vlastnost

Definice

Umožňuje přístup k jednomu členu kolekce pomocí celého čísla nebo řetězcového indexu.

Přetížení

Item[Int32]

Umožňuje přístup k členu kolekce podle celočíselného indexu.

Item[String]

Umožňuje přístup k členu kolekce pomocí řetězcového indexu.

Item[Int32]

Zdroj:
GroupCollection.cs
Zdroj:
GroupCollection.cs
Zdroj:
GroupCollection.cs

Umožňuje přístup k členu kolekce podle celočíselného indexu.

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

Index od nuly člen kolekce, který se má načíst.

Hodnota vlastnosti

Člen kolekce určený nástrojem groupnum.

Implementuje

Příklady

Následující příklad definuje regulární výraz, který se skládá ze dvou čísloných skupin. První skupina zachytí jednu nebo více po sobě jdoucích číslic. Druhá skupina odpovídá jednomu znaku. Vzhledem k tomu, že modul regulárních výrazů hledá nula nebo jeden výskyt první skupiny, ne vždy najde shodu, i když je shoda regulárního výrazu úspěšná. Příklad pak znázorňuje výsledek, když Item[Int32] se vlastnost používá k načtení chybějící skupiny, odpovídající skupiny a skupiny, která není definována v regulárním výrazu. Příklad definuje vzor (\d+)*(\w)\2regulárního výrazu , který je interpretován tak, jak je znázorněno v následující tabulce.

Vzor Description
(\d+)* Porovná jeden nebo více výskytů desetinné číslice. Toto je první zachytávající skupina. Shodovat tento vzor buď nula, nebo jednorázově.
(\w) Toto je druhá zachytávající skupina.
\k Porovná řetězec zachycený druhou zachytávající skupinou.
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

Poznámky

Vlastnost Item[Int32] je index (v jazyce C#) nebo výchozí vlastnost (v jazyce Visual Basic) GroupCollection třídy. Umožňuje vytvořit výčet členů kolekce pomocí foreach příkazu v jazyce C# nebo For Each příkazu v jazyce Visual Basic.

Tuto vlastnost můžete použít také k načtení jednotlivých zachycených skupin podle jejich indexového čísla. Voláním metody instance Regex.GetGroupNumbers můžete načíst pole obsahující čísla všech zachytávajících skupin v regulárním výrazu. Můžete také namapovat pojmenované zachytávání skupin na jejich čísla voláním metody instance Regex.GroupNumberFromName .

Počet položek v kolekci můžete určit načtením hodnoty Count vlastnosti. Platné hodnoty parametru jsou v rozsahu groupnum od 0 do jedné menší než počet položek v kolekci.

Objekt GroupCollection vrácený Match.Groups vlastností má vždy alespoň jeden člen. Pokud modul regulárních výrazů nemůže najít žádné shody v konkrétním vstupním řetězci, má jeden Group objekt v kolekci vlastnost Group.Success nastavenou na false a vlastnost Group.Value nastavenou na String.Empty.

Pokud groupnum není indexem člena kolekce nebo pokud groupnum je index zachytávání skupiny, která nebyla spárována ve vstupním řetězci, vrátí Group metoda objekt, jehož Group.Success vlastnost je false a jehož Group.Value vlastnost je String.Empty.

Viz také

Platí pro

Item[String]

Zdroj:
GroupCollection.cs
Zdroj:
GroupCollection.cs
Zdroj:
GroupCollection.cs

Umožňuje přístup k členu kolekce pomocí řetězcového indexu.

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

Název zachytávající skupiny.

Hodnota vlastnosti

Člen kolekce určený nástrojem groupname.

Implementuje

Příklady

Následující příklad definuje regulární výraz, který se skládá ze dvou pojmenovaných skupin. První skupina , numberszachytí jednu nebo více po sobě jdoucích číslic. Druhá skupina odpovídá letterjednomu znaku. Vzhledem k tomu, že modul regulárních výrazů hledá nulový nebo jeden výskyt vzoru definovaného numbers skupinou, numbers není skupina vždy přítomna, i když je shoda úspěšná. Příklad pak znázorňuje výsledek, když Item[String] se vlastnost používá k načtení chybějící skupiny, odpovídající skupiny a skupiny, která není definována v regulárním výrazu. Příklad definuje vzor (?<numbers>\d+)*(?<letter>\w)\k<letter>regulárního výrazu , který je interpretován tak, jak je znázorněno v následující tabulce.

Vzor Description
(?<numbers>\d+)* Porovná jeden nebo více výskytů desetinné číslice. Pojmenujte tuto skupinu zachytávání numbers . Shodovat tento vzor buď nula, nebo jednorázově.
(?<letter>\w) Porovná jeden znak slova. Pojmenujte tuto skupinu zachytávání letter .
\k<letter> Porovná řetězec zachycený letter skupinou zachycení.
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

Poznámky

groupName může být buď název zachytávající skupiny, která je definována elementem (?<name>) v regulárním výrazu, nebo řetězcová reprezentace čísla zachytávající skupiny, která je definována konstruktorem seskupení. Další informace o skupinách v regulárních výrazech najdete v tématu Seskupování konstruktorů.

Názvy všech zachycených skupin v objektu Regex můžete načíst voláním Regex.GetGroupNames metody . Voláním metody můžete také namapovat čísla zachytávání skupin v regulárním výrazu Regex.GroupNameFromNumber na jejich názvy. Jednotlivé názvy z pole se pak dají předat vlastnosti Item[String] , aby se načetl zachycený řetězec.

Pokud groupname není název zachytácí skupiny v kolekci nebo pokud groupname je název zachytávání skupiny, která nebyla ve vstupním řetězci shodná, vrátí Group metoda objekt, jehož Group.Success vlastnost je false a jehož Group.Value vlastnost je String.Empty.

Viz také

Platí pro