Match Match Match Match Class

Definition

1 回の正規表現検索に一致した結果を表します。 Represents the results from a single regular expression match.

public ref class Match : System::Text::RegularExpressions::Group
[Serializable]
public class Match : System.Text.RegularExpressions.Group
type Match = class
    inherit Group
Public Class Match
Inherits Group
Inheritance
Attributes
SerializableAttribute

Examples

次の例では、正規表現を使用して、Console\.Write(Line)?します。The following examples use the regular expression Console\.Write(Line)?. この正規表現パターンは、次のように解釈されます。The regular expression is interpreted as follows:

コンソール\します。書き込みConsole\.Write 文字列 "Console.Write" と一致します。Match the string "Console.Write". なお、"."任意の文字に一致するワイルドカードとしてではなく、その期間をリテラルとして解釈されますように文字がエスケープされます。Note that the "." character is escaped so that it is interpreted as a literal period rather than as a wildcard that matches any character.
(行) ですか。(Line)? 文字列 "Line" の 0 回または 1 回の繰り返しに一致します。Match zero or one occurrence of the string "Line".

例 1Example 1

次の例では、Regex.Matches(String, String)入力文字列内のすべてのパターン一致を取得します。The following example calls the Regex.Matches(String, String) method to retrieve all pattern matches in an input string. 反復処理し、 Match 、返されるオブジェクトMatchCollection各一致に関する情報を表示するオブジェクト。It then iterates the Match objects in the returned MatchCollection object to display information about each match.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "int[] values = { 1, 2, 3 };\n" +
                     "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +
                     "{\n" +
                     "   Console.Write(values[ctr]);\n" +
                     "   if (ctr < values.GetUpperBound(1))\n" +
                     "      Console.Write(\", \");\n" +
                     "}\n" +
                     "Console.WriteLine();\n";   
      
      string pattern = @"Console\.Write(Line)?";
      MatchCollection matches = Regex.Matches(input, pattern);
      foreach (Match match in matches)
         Console.WriteLine("'{0}' found in the source code at position {1}.",  
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//    'Console.Write' found in the source code at position 115.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 211.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Dim values() As Integer = { 1, 2, 3 }" & vbCrLf & _
                            "For ctr As Integer = values.GetLowerBound(1) To values.GetUpperBound(1)" & vbCrLf & _
                            "   Console.Write(values(ctr))" & vbCrLf & _
                            "   If ctr < values.GetUpperBound(1) Then Console.Write("", "")" & vbCrLf & _
                            "Next" & vbCrLf & _
                            "Console.WriteLine()"   
      Dim pattern As String = "Console\.Write(Line)?"
      Dim matches As MatchCollection = Regex.Matches(input, pattern)
      For Each match As Match In matches
         Console.WriteLine("'{0}' found in the source code at position {1}.", _ 
                           match.Value, match.Index)       
      Next                            
   End Sub
End Module
' The example displays the following output:
'    'Console.Write' found in the source code at position 115.
'    'Console.Write' found in the source code at position 184.
'    'Console.WriteLine' found in the source code at position 211.

例 2Example 2

次の例では、Match(String, String)NextMatchを一度に 1 つの一致を取得するメソッド。The following example calls the Match(String, String) and NextMatch methods to retrieve one match at a time.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "int[] values = { 1, 2, 3 };\n" +
                     "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +
                     "{\n" +
                     "   Console.Write(values[ctr]);\n" +
                     "   if (ctr < values.GetUpperBound(1))\n" +
                     "      Console.Write(\", \");\n" +
                     "}\n" +
                     "Console.WriteLine();\n";   
      string pattern = @"Console\.Write(Line)?";
      Match match = Regex.Match(input, pattern);
      while (match.Success)
      {
         Console.WriteLine("'{0}' found in the source code at position {1}.",  
                           match.Value, match.Index);
         match = match.NextMatch();
      }
   }
}
// The example displays the following output:
//    'Console.Write' found in the source code at position 115.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 211.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Dim values() As Integer = { 1, 2, 3 }" & vbCrLf & _
                            "For ctr As Integer = values.GetLowerBound(1) To values.GetUpperBound(1)" & vbCrLf & _
                            "   Console.Write(values(ctr))" & vbCrLf & _
                            "   If ctr < values.GetUpperBound(1) Then Console.Write("", "")" & vbCrLf & _
                            "Next" & vbCrLf & _
                            "Console.WriteLine()"   
      Dim pattern As String = "Console\.Write(Line)?"
      Dim match As Match = Regex.Match(input, pattern)
      Do While match.Success
         Console.WriteLine("'{0}' found in the source code at position {1}.", _ 
                           match.Value, match.Index)
         match = match.NextMatch()                  
      Loop                            
   End Sub
End Module
' The example displays the following output:
'    'Console.Write' found in the source code at position 115.
'    'Console.Write' found in the source code at position 184.
'    'Console.WriteLine' found in the source code at position 211.

Remarks

Matchオブジェクトは不変でありパブリック コンス トラクターがありません。The Match object is immutable and has no public constructor. インスタンス、Matchクラスは、によって返される、Regex.Matchメソッドを表す文字列の最初のパターンに一致します。An instance of the Match class is returned by the Regex.Match method and represents the first pattern match in a string. 後続の一致するがによって表されるMatchによって返されるオブジェクト、Match.NextMatchメソッド。Subsequent matches are represented by Match objects returned by the Match.NextMatch method. さらに、 MatchCollection 0、1 つ、以上から成るオブジェクトMatchによってオブジェクトが返される、Regex.Matchesメソッド。In addition, a MatchCollection object that consists of zero, one, or more Match objects is returned by the Regex.Matches method.

場合、 Regex.Matches 、入力文字列内の正規表現パターンに一致するメソッドが失敗した、空を返しますMatchCollectionオブジェクト。If the Regex.Matches method fails to match a regular expression pattern in an input string, it returns an empty MatchCollection object. 使用することができます、 foreach (C#) を構築またはFor Eachコレクションを反復処理する Visual Basic で作成します。You can then use a foreach construct in C# or a For Each construct in Visual Basic to iterate the collection.

場合、Regex.Matchメソッドは、正規表現パターンに一致するように失敗すると、それを返します、Matchオブジェクトと等しいMatch.Emptyします。If the Regex.Match method fails to match the regular expression pattern, it returns a Match object that is equal to Match.Empty. 使用することができます、Successプロパティを一致が成功したかどうかを判断します。You can use the Success property to determine whether the match was successful. 具体的な例を次に示します。The following example provides an illustration.

// Search for a pattern that is not found in the input string.
string pattern = "dog";
string input = "The cat saw the other cats playing in the back yard.";
Match match = Regex.Match(input, pattern);
if (match.Success )
   // Report position as a one-based integer.
   Console.WriteLine("'{0}' was found at position {1} in '{2}'.", 
                     match.Value, match.Index + 1, input);
else
   Console.WriteLine("The pattern '{0}' was not found in '{1}'.",
                     pattern, input);
' Search for a pattern that is not found in the input string.
Dim pattern As String = "dog"
Dim input As String = "The cat saw the other cats playing in the back yard."
Dim match As Match = Regex.Match(input, pattern)
If match.Success Then
   ' Report position as a one-based integer.
   Console.WriteLine("'{0}' was found at position {1} in '{2}'.", _ 
                     match.Value, match.Index + 1, input)
Else
   Console.WriteLine("The pattern '{0}' was not found in '{1}'.", _
                     pattern, input)
End If

パターン一致が成功した場合、Valueプロパティに一致した部分文字列が含まれています、Indexプロパティが一致した部分文字列の入力文字列内の 0 から始まる開始位置を示す、Lengthプロパティを示します、入力文字列内で一致した部分文字列の長さ。If a pattern match is successful, the Value property contains the matched substring, the Index property indicates the zero-based starting position of the matched substring in the input string, and the Length property indicates the length of matched substring in the input string.

単一の一致が複数のキャプチャ グループを含むため、Matchが、Groupsプロパティを返す、GroupCollectionします。Because a single match can involve multiple capturing groups, Match has a Groups property that returns the GroupCollection. Matchインスタンス自体は、コレクションの最初のオブジェクトと等価でMatch.Groups[0](Match.Groups(0) Visual basic)、一致した文字列全体を表します。The Match instance itself is equivalent to the first object in the collection, at Match.Groups[0] (Match.Groups(0) in Visual Basic), which represents the entire match. 一致でキャプチャされたグループは、次の方法でアクセスできます。You can access the captured groups in a match in the following ways:

  • メンバーを反復処理できる、GroupCollectionオブジェクトを使用して、 foreach (c#) またはFor Each(Visual Basic) の構成要素。You can iterate the members of the GroupCollection object by using a foreach (C#) or For Each (Visual Basic) construct.

  • 使用することができます、GroupCollection.Item[Int32]キャプチャ グループの番号でグループを取得するプロパティ。You can use the GroupCollection.Item[Int32] property to retrieve groups by the number of the capturing group. インスタンスを呼び出すことによって、番号付きグループは正規表現内に存在を確認することができますに注意してくださいRegex.GetGroupNumbersメソッド。Note that you can determine which numbered groups are present in a regular expression by calling the instance Regex.GetGroupNumbers method.

  • 使用することができます、GroupCollection.Item[String]キャプチャ グループの名前でグループを取得するプロパティ。You can use the GroupCollection.Item[String] property to retrieve groups by the name of the capturing group. インスタンスを呼び出すことによって、どの名前付きグループは正規表現内に存在を確認することができますに注意してくださいRegex.GetGroupNames()メソッド。Note that you can determine which named groups are present in a regular expression by calling the instance Regex.GetGroupNames() method.

Properties

Captures Captures Captures Captures

内側と左側が先の順序で、キャプチャ グループに一致したすべてのキャプチャ結果のコレクションを取得します。または、正規表現が RightToLeft オプションを使用して変更されている場合は、内側と右端が先の順序で取得します。 Gets a collection of all the captures matched by the capturing group, in innermost-leftmost-first order (or innermost-rightmost-first order if the regular expression is modified with the RightToLeft option). このコレクションには 0 個以上の項目が格納されています。 The collection may have zero or more items.

(Inherited from Group)
Empty Empty Empty Empty

空のグループを取得します。 Gets the empty group. 一致する対象が見つからなかった検索は、この空一致を返します。 All failed matches return this empty match.

Groups Groups Groups Groups

正規表現に一致したグループのコレクションを取得します。 Gets a collection of groups matched by the regular expression.

Index Index Index Index

キャプチャした部分文字列の最初の文字が見つかる元の文字列内の位置。 The position in the original string where the first character of the captured substring is found.

(Inherited from Capture)
Length Length Length Length

キャプチャした部分文字列の長さを取得します。 Gets the length of the captured substring.

(Inherited from Capture)
Name Name Name Name

現在のインスタンスで表すキャプチャ グループの名前を返します。 Returns the name of the capturing group representing by the current instance.

(Inherited from Group)
Success Success Success Success

一致した対象が見つかったかどうかを示す値を取得します。 Gets a value indicating whether the match is successful.

(Inherited from Group)
Value Value Value Value

入力文字列からキャプチャした部分文字列を取得します。 Gets the captured substring from the input string.

(Inherited from Capture)

Methods

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。 Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。 Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。 Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
NextMatch() NextMatch() NextMatch() NextMatch()

一致する対象が最後に見つかった位置の終了位置 (最後に一致した文字の後の文字) から開始して、次に一致する対象を検索した結果の新しい Match オブジェクトを返します。 Returns a new Match object with the results for the next match, starting at the position at which the last match ended (at the character after the last matched character).

Result(String) Result(String) Result(String) Result(String)

指定された置換パターンを展開して返します。 Returns the expansion of the specified replacement pattern.

Synchronized(Match) Synchronized(Match) Synchronized(Match) Synchronized(Match)

指定されたオブジェクトと等価であり、かつ複数のスレッド間での共有に適した Match インスタンスを返します。 Returns a Match instance equivalent to the one supplied that is suitable to share between multiple threads.

ToString() ToString() ToString() ToString()

Value プロパティを呼び出して、入力文字列からキャプチャされた部分文字列を取得します。 Retrieves the captured substring from the input string by calling the Value property.

(Inherited from Capture)

Applies to

See Also