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

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

パターン 説明
\b ワード境界から照合を開始します。
(\w+?) 1 つ以上 (ただし、できるだけ少ない文字数) の単語文字と一致します。 これは、2 番目の (内部) キャプチャ グループです。 (最初のキャプチャ グループには言語要素が \b 含まれます)。
[,:;]? コンマ、コロン、またはセミコロンの 0 回または 1 回の出現と一致します。
\s? 空白文字の 0 個または 1 回の出現と一致します。
(\b(\w+?)[,:;]?\s?)+ 単語の境界、1 つ以上の単語文字、句読点記号、および空白文字で構成されるパターンと 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)

適用対象