Bagikan melalui


GroupCollection.Item[] Properti

Definisi

Memungkinkan akses ke satu anggota koleksi menurut bilangan bulat atau indeks string.

Overload

Item[Int32]

Memungkinkan akses ke anggota koleksi menurut indeks bilangan bulat.

Item[String]

Memungkinkan akses ke anggota koleksi menurut indeks string.

Item[Int32]

Sumber:
GroupCollection.cs
Sumber:
GroupCollection.cs
Sumber:
GroupCollection.cs

Memungkinkan akses ke anggota koleksi menurut indeks bilangan bulat.

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

Indeks berbasis nol dari anggota koleksi yang akan diambil.

Nilai Properti

Anggota koleksi yang ditentukan oleh groupnum.

Penerapan

Contoh

Contoh berikut mendefinisikan ekspresi reguler yang terdiri dari dua grup bernomor. Grup pertama menangkap satu atau beberapa digit berturut-turut. Grup kedua cocok dengan satu karakter. Karena mesin ekspresi reguler mencari nol atau satu kemunculan grup pertama, mesin ekspresi reguler tidak selalu menemukan kecocokan meskipun kecocokan ekspresi reguler berhasil. Contoh kemudian mengilustrasikan hasil ketika Item[Int32] properti digunakan untuk mengambil grup yang tidak cocok, grup yang cocok, dan grup yang tidak ditentukan dalam ekspresi reguler. Contoh mendefinisikan pola (\d+)*(\w)\2ekspresi reguler , yang ditafsirkan seperti yang ditunjukkan dalam tabel berikut.

Pola Deskripsi
(\d+)* Cocokkan satu atau beberapa kemunculan digit desimal. Ini adalah grup pengambilan pertama. Cocokkan pola ini baik nol atau satu kali.
(\w) Ini adalah grup pengambilan kedua.
\k Cocokkan string yang diambil oleh grup penangkapan kedua.
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

Keterangan

Properti Item[Int32] adalah indeks (dalam C#) atau properti default (di Visual Basic) kelas GroupCollection . Ini memungkinkan Anda untuk menghitung anggota koleksi dengan menggunakan foreach pernyataan di C# atau For Each pernyataan di Visual Basic.

Anda juga dapat menggunakan properti ini untuk mengambil grup yang diambil individual berdasarkan nomor indeksnya. Anda dapat mengambil array yang berisi jumlah semua penangkapan grup dalam ekspresi reguler dengan memanggil metode instans Regex.GetGroupNumbers . Anda juga dapat memetakan bernama menangkap grup ke nomor mereka dengan memanggil metode instans Regex.GroupNumberFromName .

Anda dapat menentukan jumlah item dalam koleksi dengan mengambil nilai Count properti . Nilai yang groupnum valid untuk parameter berkisar dari 0 hingga satu kurang dari jumlah item dalam koleksi.

Objek GroupCollection yang Match.Groups dikembalikan oleh properti selalu memiliki setidaknya satu anggota. Jika mesin ekspresi reguler tidak dapat menemukan kecocokan apa pun dalam string input tertentu, objek tunggal Group dalam koleksi memiliki properti yang Group.Success diatur ke false dan propertinya Group.Value diatur ke String.Empty.

Jika groupnum bukan indeks anggota koleksi, atau jika groupnum adalah indeks grup penangkapan yang belum dicocokkan dalam string input, metode mengembalikan Group objek yang propertinya Group.Success adalah false dan yang propertinya Group.Value adalah String.Empty.

Lihat juga

Berlaku untuk

Item[String]

Sumber:
GroupCollection.cs
Sumber:
GroupCollection.cs
Sumber:
GroupCollection.cs

Memungkinkan akses ke anggota koleksi menurut indeks string.

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

Nama grup penangkapan.

Nilai Properti

Anggota koleksi yang ditentukan oleh groupname.

Penerapan

Contoh

Contoh berikut mendefinisikan ekspresi reguler yang terdiri dari dua grup bernama. Grup pertama, numbers, mengambil satu atau beberapa digit berturut-turut. Grup kedua, letter, cocok dengan satu karakter. Karena mesin ekspresi reguler mencari nol atau satu kemunculan pola yang ditentukan oleh numbers grup, numbers grup tidak selalu ada meskipun kecocokan berhasil. Contoh kemudian mengilustrasikan hasil ketika Item[String] properti digunakan untuk mengambil grup yang tidak cocok, grup yang cocok, dan grup yang tidak ditentukan dalam ekspresi reguler. Contoh mendefinisikan pola (?<numbers>\d+)*(?<letter>\w)\k<letter>ekspresi reguler , yang ditafsirkan seperti yang ditunjukkan dalam tabel berikut.

Pola Deskripsi
(?<numbers>\d+)* Cocokkan satu atau beberapa kemunculan digit desimal. Beri nama numbers ini grup penangkap. Cocokkan pola ini baik nol atau satu kali.
(?<letter>\w) Cocokkan satu karakter kata. Beri nama letter ini grup penangkap.
\k<letter> Cocokkan string yang diambil oleh letter grup penangkapan.
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

Keterangan

groupNamedapat berupa nama grup penangkapan yang ditentukan oleh (?< elemen nama>) dalam ekspresi reguler, atau representasi string dari jumlah grup penangkapan yang ditentukan oleh konstruksi pengelompokan. Untuk informasi selengkapnya tentang grup dalam ekspresi reguler, lihat Konstruksi Pengelompokan.

Anda dapat mengambil nama semua grup yang diambil dalam Regex objek dengan memanggil Regex.GetGroupNames metode . Anda juga dapat memetakan jumlah penangkapan grup dalam ekspresi reguler ke namanya dengan memanggil Regex.GroupNameFromNumber metode . Nama individual dari array kemudian dapat diteruskan ke Item[String] properti untuk mengambil string yang diambil.

Jika groupname bukan nama grup penangkapan dalam koleksi, atau jika groupname adalah nama grup penangkapan yang belum dicocokkan dalam string input, metode mengembalikan Group objek yang propertinya Group.Success adalah false dan yang propertinya Group.Value adalah String.Empty.

Lihat juga

Berlaku untuk