Capture クラス

定義

正常にマッチした単一部分式キャプチャの結果を表します。

public ref class Capture
public class Capture
[System.Serializable]
public class Capture
type Capture = class
[<System.Serializable>]
type Capture = class
Public Class Capture
継承
Capture
派生
属性

次の例では、ピリオド (".") 以外の区切り記号を含まない文に一致する正規表現を定義しています。

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "Yes. This dog is very friendly.";
      string pattern = @"((\w+)[\s.])+";
      foreach (Match match in Regex.Matches(input, pattern))
      {
         Console.WriteLine("Match: {0}", match.Value);
         for (int groupCtr = 0; groupCtr < match.Groups.Count; groupCtr++)
         {
            Group group = match.Groups[groupCtr];
            Console.WriteLine("   Group {0}: {1}", groupCtr, group.Value);
            for (int captureCtr = 0; captureCtr < group.Captures.Count; captureCtr++)
               Console.WriteLine("      Capture {0}: {1}", captureCtr, 
                                 group.Captures[captureCtr].Value);
         }                      
      }
   }
}
// The example displays the following output:
//       Match: Yes.
//          Group 0: Yes.
//             Capture 0: Yes.
//          Group 1: Yes.
//             Capture 0: Yes.
//          Group 2: Yes
//             Capture 0: Yes
//       Match: This dog is very friendly.
//          Group 0: This dog is very friendly.
//             Capture 0: This dog is very friendly.
//          Group 1: friendly.
//             Capture 0: This
//             Capture 1: dog
//             Capture 2: is
//             Capture 3: very
//             Capture 4: friendly.
//          Group 2: friendly
//             Capture 0: This
//             Capture 1: dog
//             Capture 2: is
//             Capture 3: very
//             Capture 4: friendly
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Yes. This dog is very friendly."
      Dim pattern As String = "((\w+)[\s.])+"
      For Each match As Match In Regex.Matches(input, pattern)
         Console.WriteLine("Match: {0}", match.Value)
         For groupCtr As Integer = 0 To match.Groups.Count - 1
            Dim group As Group = match.Groups(groupCtr)
            Console.WriteLine("   Group {0}: {1}", groupCtr, group.Value)
            For captureCtr As Integer = 0 To group.Captures.Count - 1
               Console.WriteLine("      Capture {0}: {1}", captureCtr, _
                                 group.Captures(captureCtr).Value)
            Next
         Next                      
      Next
   End Sub
End Module
' The example displays the following output:
'       Match: Yes.
'          Group 0: Yes.
'             Capture 0: Yes.
'          Group 1: Yes.
'             Capture 0: Yes.
'          Group 2: Yes
'             Capture 0: Yes
'       Match: This dog is very friendly.
'          Group 0: This dog is very friendly.
'             Capture 0: This dog is very friendly.
'          Group 1: friendly.
'             Capture 0: This
'             Capture 1: dog
'             Capture 2: is
'             Capture 3: very
'             Capture 4: friendly.
'          Group 2: friendly
'             Capture 0: This
'             Capture 1: dog
'             Capture 2: is
'             Capture 3: very
'             Capture 4: friendly

正規表現パターン ((\w+)[\s.])+ は、次の表に示すように定義されています。 この正規表現では、量指定子 (+) が正規表現全体に適用されることに注意してください。

Pattern 説明
(\w+) 1 つ以上の単語文字に一致します。 これが 2 番目のキャプチャ グループです。
[\s.]) 空白文字またはピリオド (".") と一致します。
((\w+)[\s.]) 1個以上の単語文字の後に空白文字またはピリオド (".") が続くパターンと一致します。 これが最初のキャプチャ グループです。
((\w+)[\s.])+ 1個以上の単語文字の後に空白文字またはピリオド (".") が続くパターンの1回以上の出現と一致します。

この例では、入力文字列は2つの文で構成されています。 出力に示されているように、最初の文は1つの単語で構成されているので、オブジェクトにはオブジェクト CaptureCollection と同じキャプチャを表す1つのオブジェクトがあり Capture Group ます。 2番目の文は複数の単語で構成されるため、オブジェクトには Group 最後に一致した部分式に関する情報のみが含まれます。 最初のキャプチャを表すグループ1は、終了期間がある文の最後の単語を含んでいます。 2番目のキャプチャを表すグループ2は、文の最後の単語を含んでいます。 ただし、 Capture グループのオブジェクト内のオブジェクトは、 CaptureCollection 各部分式の一致をキャプチャします。 Capture最初のキャプチャグループのキャプチャコレクション内のオブジェクトには、キャプチャされた単語と空白文字または期間に関する情報が含まれています。 Capture2 番目のキャプチャグループのキャプチャコレクション内のオブジェクトには、キャプチャされた各単語に関する情報が含まれています。

注釈

Captureオブジェクトは変更できず、パブリックコンストラクターもありません。 インスタンスはオブジェクトを通じて返され CaptureCollection ます。このオブジェクトは、プロパティおよびプロパティによって返され Match.Captures Group.Captures ます。 ただし、プロパティは、 Match.Captures オブジェクトと同じ一致に関する情報を提供し Match ます。

量指定子をキャプチャグループに適用しない場合、 Group.Captures プロパティは、 CaptureCollection Capture オブジェクトと同じキャプチャに関する情報を提供する単一のオブジェクトを持つを返し Group ます。 量指定子をキャプチャグループに適用すると、、 Group.Index 、およびの各プロパティは、 Group.Length 最後にキャプチャさ Group.Value れたグループに関する情報のみを提供し Capture ます。一方、内のオブジェクトは、すべての CaptureCollection 部分式キャプチャに関する情報を提供します。 具体的な例を次に示します。

プロパティ

Index

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

Length

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

Value

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

ValueSpan

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

メソッド

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
ToString()

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

適用対象

こちらもご覧ください