GroupCollection.Item[String] GroupCollection.Item[String] GroupCollection.Item[String] GroupCollection.Item[String] Property

定義

オーバーロード

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

整数インデックスによってコレクションのメンバーにアクセスできるようにします。Enables access to a member of the collection by integer index.

Item[String] Item[String] Item[String] Item[String]

文字列インデックスによってコレクションのメンバーにアクセスできるようにします。Enables access to a member of the collection by string index.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

整数インデックスによってコレクションのメンバーにアクセスできるようにします。Enables access to a member of the collection by integer index.

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 Int32 Int32 Int32

取得するコレクション メンバーの 0 から始まるインデックス。The zero-based index of the collection member to be retrieved.

プロパティ値

groupnum で指定されたコレクションのメンバー。The member of the collection specified by groupnum.

次の例では、2 つの番号付きグループで構成される正規表現を定義します。The following example defines a regular expression that consists of two numbered groups. 最初のグループは、1 つまたは複数の連続する数字をキャプチャします。The first group captures one or more consecutive digits. 2 番目のグループでは、1 つの文字と一致します。The second group matches a single character. 正規表現エンジンは、0 個または 1 つの最初のグループを検索するため、常に検出されません一致、正規表現の一致が成功した場合でもです。Because the regular expression engine looks for zero or one occurrence of the first group, it does not always find a match even if the regular expression match is successful. 例では、し、結果を示して ときに、Item[Int32]比類のないグループを一致するグループ、および正規表現で定義されていないグループを取得するプロパティを使用します。The example then illustrates the result when the Item[Int32] property is used to retrieve an unmatched group, a matched group, and a group that is not defined in the regular expression. 例では、正規表現パターンを定義します。 (\d+)*(\w)\2、次の表に示すように解釈されます。The example defines a regular expression pattern (\d+)*(\w)\2, which is interpreted as shown in the following table.

パターンPattern 説明Description
(\d+)* 10 進数字の 1 つまたは複数回を一致します。Match one or more occurrence of a decimal digit. これが最初のキャプチャ グループです。This is the first capturing group. 0 個または 1 回このパターンに一致します。Match this pattern either zero or one time.
(\w) これが 2 番目のキャプチャ グループです。This is the second capturing group.
\k 2 番目のキャプチャ グループによってキャプチャされた文字列と一致します。Match the string captured by the second capturing group.
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クラス。The Item[Int32] property is the index (in C#) or the default property (in Visual Basic) of the GroupCollection class. 使用して、コレクションのメンバーを列挙することができますが、 foreach (C#) ステートメントまたはFor EachVisual Basic でのステートメント。It allows you to enumerate the members of the collection by using a foreach statement in C# or a For Each statement in Visual Basic.

個々 のキャプチャ グループをインデックス番号で取得するためにこのプロパティを使用することもできます。You can also use this property to retrieve individual captured groups by their index number. インスタンスを呼び出すことによって、正規表現内のすべてのキャプチャ グループの数を格納する配列を取得するRegex.GetGroupNumbersメソッド。You can retrieve an array that contains the numbers of all capturing groups in a regular expression by calling the instance Regex.GetGroupNumbers method. インスタンスを呼び出すことによって、その番号を名前付きキャプチャ グループをマップすることもRegex.GroupNumberFromNameメソッド。You can also map named capturing groups to their numbers by calling the instance Regex.GroupNumberFromName method.

値を取得することによって、コレクション内の項目の数を決定できます、Countプロパティ。You can determine the number of items in the collection by retrieving the value of the Count property. 有効な値、groupnumパラメーターの範囲を 0 からコレクション内の項目の数より 1 少ない数にします。Valid values for the groupnum parameter range from 0 to one less than the number of items in the collection.

GroupCollectionによって返されるオブジェクト、Match.Groupsプロパティは常に少なくとも 1 つのメンバーを持ちます。The GroupCollection object returned by the Match.Groups property always has at least one member. 正規表現エンジンでは、特定の入力文字列の 1 つの一致が見つからない場合Groupコレクション内のオブジェクトがそのGroup.Successプロパティに設定falseとそのGroup.Valueプロパティに設定String.Emptyします。If the regular expression engine cannot find any matches in a particular input string, the single Group object in the collection has its Group.Success property set to false and its Group.Value property set to String.Empty.

場合groupnum、コレクションのメンバーのインデックスではない場合groupnumとは一致しない入力の文字列でメソッドを返しますが、キャプチャ グループのインデックスをGroupオブジェクトGroup.SuccessプロパティはfalseとがGroup.ValueプロパティはString.Emptyします。If groupnum is not the index of a member of the collection, or if groupnum is the index of a capturing group that has not been matched in the input string, the method returns a Group object whose Group.Success property is false and whose Group.Value property is String.Empty.

こちらもご覧ください

Item[String] Item[String] Item[String] Item[String]

文字列インデックスによってコレクションのメンバーにアクセスできるようにします。Enables access to a member of the collection by string index.

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 String String String

キャプチャ グループの名前。The name of a capturing group.

プロパティ値

groupname で指定されたコレクションのメンバー。The member of the collection specified by groupname.

次の例では、2 つの名前付きグループで構成される正規表現を定義します。The following example defines a regular expression that consists of two named groups. 最初のグループnumbers、1 つまたは複数の連続する数字をキャプチャします。The first group, numbers, captures one or more consecutive digits. 2 番目のグループletter、1 文字と一致します。The second group, letter, matches a single character. によって定義されたパターンの 0 個または 1 回の正規表現エンジンが見えるため、 numbers 、グループ、numbersグループが常に存在しない場合でも、一致が成功するとします。Because the regular expression engine looks for zero or one occurrence of the pattern defined by the numbers group, the numbers group is not always present even if a match is successful. 例では、し、結果を示して ときに、Item[String]比類のないグループを一致するグループ、および正規表現で定義されていないグループを取得するプロパティを使用します。The example then illustrates the result when the Item[String] property is used to retrieve an unmatched group, a matched group, and a group that is not defined in the regular expression. 例では、正規表現パターンを定義します。 (?<numbers>\d+)*(?<letter>\w)\k<letter>、次の表に示すように解釈されます。The example defines a regular expression pattern (?<numbers>\d+)*(?<letter>\w)\k<letter>, which is interpreted as shown in the following table.

パターンPattern 説明Description
(?<numbers>\d+)* 10 進数字の 1 つまたは複数回を一致します。Match one or more occurrence of a decimal digit. この名前をnumbersキャプチャ グループです。Name this the numbers capturing group. 0 個または 1 回このパターンに一致します。Match this pattern either zero or one time.
(?<letter>\w) 1 つの単語文字と一致します。Match a single word character. この名前をletterキャプチャ グループです。Name this the letter capturing group.
\k<letter> によってキャプチャされた文字列の一致、letterキャプチャ グループです。Match the string captured by the letter capturing group.
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 いずれかで定義されているキャプチャ グループの名前を指定できます、 (?<名前>)正規表現の場合、またはグループで定義されているキャプチャ グループの数の文字列形式内の要素構築します。groupName can be either the name of a capturing group that is defined by the (?<name>) element in a regular expression, or the string representation of the number of a capturing group that is defined by a grouping construct. 正規表現でのグループの詳細については、次を参照してください。グループ化構成体します。For more information about groups in regular expressions, see Grouping Constructs.

内のすべてのキャプチャ グループの名前を取得することができます、Regexオブジェクトを呼び出すことによって、Regex.GetGroupNamesメソッド。You can retrieve the names of all the captured groups in a Regex object by calling the Regex.GetGroupNames method. 呼び出してキャプチャ名には、正規表現でのグループの番号をマップすることも、Regex.GroupNameFromNumberメソッド。You can also map the numbers of capturing groups in a regular expression to their names by calling the Regex.GroupNameFromNumber method. 配列から個々 の名前に渡すことができます、Item[String]キャプチャされた文字列を取得するプロパティ。Individual names from the array can then be passed to the Item[String] property to retrieve the captured string.

場合groupname、コレクション内のキャプチャ グループの名前でない場合、またはgroupnameとは一致しない入力の文字列でメソッドを返しますが、キャプチャ グループの名前を指定します、GroupオブジェクトGroup.SuccessプロパティはfalseそのGroup.ValueプロパティはString.Emptyします。If groupname is not the name of a capturing group in the collection, or if groupname is the name of a capturing group that has not been matched in the input string, the method returns a Group object whose Group.Success property is false and whose Group.Value property is String.Empty.

こちらもご覧ください

適用対象