Поделиться через


GroupCollection.Item[] Свойство

Определение

Позволяет осуществлять доступ к отдельному элементу коллекции с помощью целочисленного или строкового индекса.

Перегрузки

Item[Int32]

Включает доступ к члену коллекции с помощью целочисленного индекса.

Item[String]

Включает доступ к члену коллекции с помощью строкового индекса.

Item[Int32]

Исходный код:
GroupCollection.cs
Исходный код:
GroupCollection.cs
Исходный код:
GroupCollection.cs

Включает доступ к члену коллекции с помощью целочисленного индекса.

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

Параметры

groupnum
Int32

Отсчитываемый от нуля индекс извлекаемого элемента коллекции.

Значение свойства

Элемент коллекции, заданный параметром groupnum.

Реализации

Примеры

В следующем примере определяется регулярное выражение, состоящее из двух нумеруемых групп. Первая группа записывает одну или несколько последовательных цифр. Вторая группа соответствует одному символу. Так как обработчик регулярных выражений ищет ноль или одно вхождение первой группы, он не всегда находит совпадение, даже если совпадение регулярного выражения выполнено успешно. Затем в примере показан результат, когда Item[Int32] свойство используется для получения несопоставьтеемую группу, соответствующую группу и группу, которая не определена в регулярном выражении. В примере определяется шаблон (\d+)*(\w)\2регулярного выражения , который интерпретируется, как показано в следующей таблице.

Шаблон Описание
(\d+)* Совпадение с одним или несколькими вхождениями десятичной цифры. Это первая группа записи. Соответствует этому шаблону либо ноль, либо один раз.
(\w) Это вторая группа записи.
\k Соответствует строке, записанной второй группой захвата.
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

Комментарии

Свойство Item[Int32] является индексом (в C#) или свойством по умолчанию (в Visual Basic) GroupCollection класса . Он позволяет перечислять члены коллекции с помощью foreach оператора в C# или For Each оператора в Visual Basic.

Это свойство также можно использовать для получения отдельных отслеживаемых групп по номеру индекса. Вы можете получить массив, содержащий числа всех записываемых групп в регулярном выражении, вызвав метод экземпляра Regex.GetGroupNumbers . Вы также можете сопоставить именованные группы захвата с их номерами, вызвав метод экземпляра Regex.GroupNumberFromName .

Количество элементов в коллекции можно определить, извлекая значение Count свойства . Допустимые значения параметра в диапазоне groupnum от 0 до единицы меньше числа элементов в коллекции.

Объект GroupCollection , возвращаемый свойством , Match.Groups всегда имеет по крайней мере один член. Если подсистеме регулярных выражений не удается найти совпадения в определенной входной строке, для отдельного Group объекта в коллекции задано Group.Success значение false , а Group.Value свойству — значение String.Empty.

Если groupnum не является индексом члена коллекции или является groupnum индексом захватываемой группы, которая не была сопоставлена во входной строке, метод возвращает Group объект, свойство которого Group.Success имеет значение false , а свойство — Group.ValueString.Empty.

См. также раздел

Применяется к

Item[String]

Исходный код:
GroupCollection.cs
Исходный код:
GroupCollection.cs
Исходный код:
GroupCollection.cs

Включает доступ к члену коллекции с помощью строкового индекса.

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

Параметры

groupname
String

Имя группы записи.

Значение свойства

Элемент коллекции, заданный параметром groupname.

Реализации

Примеры

В следующем примере определяется регулярное выражение, состоящее из двух именованных групп. Первая группа, , numbersзахватывает одну или несколько последовательных цифр. Вторая группа, letter, соответствует одному символу. Так как подсистема регулярных выражений ищет ноль или одно вхождение шаблона, определенного numbers группой, numbers группа не всегда присутствует, даже если совпадение выполнено успешно. Затем в примере показан результат, когда Item[String] свойство используется для получения несопоставьтеемую группу, соответствующую группу и группу, которая не определена в регулярном выражении. В примере определяется шаблон (?<numbers>\d+)*(?<letter>\w)\k<letter>регулярного выражения , который интерпретируется, как показано в следующей таблице.

Шаблон Описание
(?<numbers>\d+)* Совпадение с одним или несколькими вхождениями десятичной цифры. Назовите эту группу numbers записи. Соответствует этому шаблону либо ноль, либо один раз.
(?<letter>\w) Совпадение с одним словом. Назовите эту группу letter записи.
\k<letter> Соответствует строке, записанной захватываемой 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

Комментарии

groupName Может быть либо именем захватываемой группы, определенной элементом (?<name>) в регулярном выражении, либо строковым представлением числа захватываемой группы, определенной конструкцией группирования. Дополнительные сведения о группах в регулярных выражениях см. в разделе Конструкции группирования.

Имена всех захваченных групп в объекте Regex можно получить, вызвав Regex.GetGroupNames метод . Вы также можете сопоставить числа записываемых групп в регулярном выражении с их именами, вызвав Regex.GroupNameFromNumber метод . Затем отдельные имена из массива можно передать в Item[String] свойство , чтобы получить записанную строку.

Если groupname не является именем захватываемой группы в коллекции или groupname именем захватываемой группы, которая не была сопоставлена во входной строке, метод возвращает Group объект, свойство которого Group.Success имеет значение false , а свойство — Group.ValueString.Empty.

См. также раздел

Применяется к