Group クラス

定義

単一キャプチャ グループによるキャプチャの結果を表します。

public ref class Group : System::Text::RegularExpressions::Capture
public class Group : System.Text.RegularExpressions.Capture
[System.Serializable]
public class Group : System.Text.RegularExpressions.Capture
type Group = class
    inherit Capture
[<System.Serializable>]
type Group = class
    inherit Capture
Public Class Group
Inherits Capture
継承
Group
派生
属性

注釈

キャプチャグループは、量指定子によって1つの一致で0個以上の文字列をキャプチャできます。 (詳細については、「 量指定子」を参照してください)。1つのキャプチャグループに一致するすべての部分文字列は、プロパティから取得でき Group.Captures ます。 キャプチャされた最後の部分文字列に関する情報には、プロパティとプロパティから直接アクセスでき Value Index ます。 (つまり、 Group インスタンスは、プロパティによって返されるコレクションの最後の項目に相当し Captures ます。これには、キャプチャグループによって行われた最後のキャプチャが反映されます)。

例を使用する Group と、オブジェクトと、 System.Text.RegularExpressions.CaptureCollection プロパティによって返されるとの関係を明確にすることができ Captures ます。 正規表現パターンは、 (\b(\w+?)[,:;]?\s?)+[?.!] 文全体に一致します。 正規表現は、次の表に示すように定義されています。

パターン 説明
\b ワード境界から照合を開始します。
(\w+?) 1 つ以上 (ただし、できるだけ少ない文字数) の単語文字と一致します。 これは、2番目 (内部) のキャプチャグループです。 (最初のキャプチャグループには、言語要素が含まれてい \b ます)。
[,:;]? コンマ、コロン、またはセミコロンの0回または1回の繰り返しに一致します。
\s? 空白文字の0回または1回の繰り返しに一致します。
(\b(\w+?)[,:;]?\s?)+ ワード境界、1個以上の単語文字、区切り記号、および空白文字で構成されるパターンに一致します。 これが最初のキャプチャ グループです。
[?.!] ピリオド、疑問符、または感嘆符の出現箇所に一致します。

この正規表現パターンでは、サブパターンは、 (\w+?) 文内の複数の単語に一致するように設計されています。 ただし、オブジェクトの値は、 Group がキャプチャする最後の一致だけを表し (\w+?) Captures ます。一方、プロパティは、キャプチャされたすべての CaptureCollection テキストを表すを返します。 出力に示されているように、 CaptureCollection 2 番目のキャプチャグループのには4つのオブジェクトが含まれています。 最後の部分は、オブジェクトに対応し Group ます。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(\b(\w+?)[,:;]?\s?)+[?.!]";
      string input = "This is one sentence. This is a second sentence.";

      Match match = Regex.Match(input, pattern);
      Console.WriteLine("Match: " + match.Value);
      int groupCtr = 0;
      foreach (Group group in match.Groups)
      {
         groupCtr++;
         Console.WriteLine("   Group {0}: '{1}'", groupCtr, group.Value);
         int captureCtr = 0;
         foreach (Capture capture in group.Captures)
         {
            captureCtr++;
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, capture.Value);
         }
      }   
   }
}
// The example displays the following output:
//       Match: This is one sentence.
//          Group 1: 'This is one sentence.'
//             Capture 1: 'This is one sentence.'
//          Group 2: 'sentence'
//             Capture 1: 'This '
//             Capture 2: 'is '
//             Capture 3: 'one '
//             Capture 4: 'sentence'
//          Group 3: 'sentence'
//             Capture 1: 'This'
//             Capture 2: 'is'
//             Capture 3: 'one'
//             Capture 4: 'sentence'
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "(\b(\w+?)[,:;]?\s?)+[?.!]"
      Dim input As String = "This is one sentence. This is a second sentence."

      Dim match As Match = Regex.Match(input, pattern)
      Console.WriteLine("Match: " + match.Value)
      Dim groupCtr As Integer = 0
      For Each group As Group In match.Groups
         groupCtr += 1
         Console.WriteLine("   Group {0}: '{1}'", groupCtr, group.Value)
         Dim captureCtr As Integer = 0
         For Each capture As Capture In group.Captures
            captureCtr += 1
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, capture.Value)
         Next
      Next   
   End Sub
End Module
' The example displays the following output:
'       Match: This is one sentence.
'          Group 1: 'This is one sentence.'
'             Capture 1: 'This is one sentence.'
'          Group 2: 'sentence'
'             Capture 1: 'This '
'             Capture 2: 'is '
'             Capture 3: 'one '
'             Capture 4: 'sentence'
'          Group 3: 'sentence'
'             Capture 1: 'This'
'             Capture 2: 'is'
'             Capture 3: 'one'
'             Capture 4: 'sentence'

プロパティ

Captures

内側と左側が先の順序で、キャプチャ グループに一致したすべてのキャプチャ結果のコレクションを取得します。または、正規表現が RightToLeft オプションを使用して変更されている場合は、内側と右端が先の順序で取得します。 このコレクションには 0 個以上の項目が格納されています。

Index

キャプチャした部分文字列の最初の文字が見つかる元の文字列内の位置。

(継承元 Capture)
Length

キャプチャした部分文字列の長さを取得します。

(継承元 Capture)
Name

現在のインスタンスで表されるキャプチャ グループの名前を返します。

Success

一致した対象が見つかったかどうかを示す値を取得します。

Value

入力文字列からキャプチャした部分文字列を取得します。

(継承元 Capture)
ValueSpan

入力文字列からキャプチャされたスパンを取得します。

(継承元 Capture)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Synchronized(Group)

指定されたオブジェクトと等価の、複数のスレッド間で安全に共有できる Group オブジェクトを返します。

ToString()

Value プロパティを呼び出して、入力文字列からキャプチャされた部分文字列を取得します。

(継承元 Capture)

適用対象