次の方法で共有


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 つ以上の出現箇所の後に空白文字またはピリオド ("." が続く) と一致します。

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

注釈

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

量指定子をキャプチャ グループに適用しない場合、プロパティは、Group.Capturesオブジェクトと同じキャプチャに関する情報を提供する 1 つのCaptureオブジェクトを持つオブジェクトをGroupCaptureCollectionします。 量指定子をキャプチャ グループに適用する場合は、最後に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 プロパティを呼び出して、入力文字列からキャプチャされた部分文字列を取得します。

適用対象

こちらもご覧ください