다음을 통해 공유


GroupCollection.Item[] 속성

정의

정수나 문자열 인덱스에 따라 컬렉션의 단일 멤버에 액세스할 수 있도록 합니다.

오버로드

Item[Int32]

정수 인덱스에 따라 컬렉션의 멤버에 대한 액세스를 가능하게 합니다.

Item[String]

문자열 인덱스에 따라 컬렉션의 멤버에 대한 액세스를 가능하게 합니다.

Item[Int32]

Source:
GroupCollection.cs
Source:
GroupCollection.cs
Source:
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

검색할 컬렉션 멤버의 인덱스(0부터 시작)입니다.

속성 값

groupnum으로 지정한 컬렉션의 멤버입니다.

구현

예제

다음 예제에서는 번호가 매겨진 두 그룹으로 구성된 정규식을 정의합니다. 첫 번째 그룹은 하나 이상의 연속 숫자를 캡처합니다. 두 번째 그룹은 단일 문자와 일치합니다. 정규식 엔진은 첫 번째 그룹의 0개 또는 1개 발생을 찾기 때문에 정규식 일치가 성공하더라도 항상 일치 항목을 찾을 수 있는 것은 아닙니다. 그런 다음, 속성이 일치하지 않는 그룹, 일치하는 그룹 및 정규식에 정의되지 않은 그룹을 검색하는 데 사용될 때 Item[Int32] 의 결과를 보여 줍니다. 이 예제에서는 다음 표와 같이 해석되는 정규식 패턴을 (\d+)*(\w)\2정의합니다.

무늬 설명
(\d+)* 하나 이상의 소수 자릿수와 일치합니다. 이 그룹은 첫 번째 캡처링 그룹입니다. 이 패턴을 0번 또는 한 번 일치시키면 됩니다.
(\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 . C#의 문 또는 Visual Basic의 문을 사용하여 foreach 컬렉션의 멤버를 For Each 열거할 수 있습니다.

이 속성을 사용하여 인덱스 번호로 캡처된 개별 그룹을 검색할 수도 있습니다. instance Regex.GetGroupNumbers 메서드를 호출하여 정규식에서 캡처하는 모든 그룹의 수를 포함하는 배열을 검색할 수 있습니다. instance Regex.GroupNumberFromName 메서드를 호출하여 명명된 캡처 그룹을 해당 숫자에 매핑할 수도 있습니다.

속성 값을 검색하여 Count 컬렉션의 항목 수를 확인할 수 있습니다. 매개 변수의 groupnum 유효한 값은 컬렉션의 항목 수보다 0에서 1까지입니다.

GroupCollection 속성에서 반환된 개체에는 Match.Groups 항상 하나 이상의 멤버가 있습니다. 정규식 엔진이 특정 입력 문자열에서 일치하는 항목을 찾을 수 없는 경우 컬렉션의 단일 Group 개체에는 해당 속성이 로 false 설정되고 해당 Group.Success 속성이 Group.Value 로 설정됩니다String.Empty.

가 컬렉션 멤버의 인덱스가 아니거나 가 입력 문자열에서 일치하지 않는 캡처 그룹의 인덱스인 경우 groupnumgroupnum 메서드는 false 속성이 Group.Success 이고 속성String.Empty이 인 개체를 Group.Value 반환 Group 합니다.

추가 정보

적용 대상

Item[String]

Source:
GroupCollection.cs
Source:
GroupCollection.cs
Source:
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 정의한 패턴의 0개 또는 1개 발생을 numbers 찾기 때문에 일치가 성공하더라도 그룹이 항상 존재하지는 않습니다. 그런 다음, 속성이 일치하지 않는 그룹, 일치하는 그룹 및 정규식에 정의되지 않은 그룹을 검색하는 데 사용될 때 Item[String] 의 결과를 보여 줍니다. 이 예제에서는 다음 표와 같이 해석되는 정규식 패턴을 (?<numbers>\d+)*(?<letter>\w)\k<letter>정의합니다.

무늬 설명
(?<numbers>\d+)* 하나 이상의 소수 자릿수와 일치합니다. 캡처 numbers 그룹의 이름을 지정합니다. 이 패턴을 0번 또는 한 번 일치시키면 됩니다.
(?<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은 정규식의 이름 요소로 (?< 정의된 캡처 그룹의 이름>) 또는 그룹화 구문으로 정의된 캡처 그룹 수의 문자열 표현일 수 있습니다. 정규식의 그룹에 대한 자세한 내용은 그룹화 구문을 참조하세요.

메서드를 호출하여 개체에서 Regex 캡처된 모든 그룹의 이름을 검색할 Regex.GetGroupNames 수 있습니다. 메서드를 호출 Regex.GroupNameFromNumber 하여 정규식의 캡처 그룹 수를 해당 이름에 매핑할 수도 있습니다. 그런 다음 배열의 개별 이름을 속성에 전달하여 Item[String] 캡처된 문자열을 검색할 수 있습니다.

가 컬렉션에 있는 캡처 그룹의 이름이 아니거나 가 입력 문자열에서 일치하지 않는 캡처 그룹의 이름인 경우 groupnamegroupname 메서드는 속성이 Group.Success 이고 속성 falseString.Empty이 인 개체를 Group.Value 반환 Group 합니다.

추가 정보

적용 대상