Match Sınıf

Tanım

Tek bir normal ifade eşleşmesinin sonuçlarını temsil eder.

public ref class Match : System::Text::RegularExpressions::Group
public class Match : System.Text.RegularExpressions.Group
[System.Serializable]
public class Match : System.Text.RegularExpressions.Group
type Match = class
    inherit Group
[<System.Serializable>]
type Match = class
    inherit Group
Public Class Match
Inherits Group
Devralma
Öznitelikler

Örnekler

Aşağıdaki örneklerde normal ifadesi Console\.Write(Line)?kullanılır. Normal ifade aşağıdaki gibi yorumlanır:

Konsol'a\ geçin. Yazmak "Console.Write" dizesini eşleştirin. "." karakterinin, herhangi bir karakterle eşleşen bir joker karakter yerine değişmez değer dönemi olarak yorumlandığı şekilde kaçış karakterine dikkat edin.
(Çizgi)? "Line" dizesinin sıfır veya bir oluşumunu eşleştirin.

Örnek 1

Aşağıdaki örnek, bir giriş dizesindeki Regex.Matches(String, String) tüm desen eşleşmelerini almak için yöntemini çağırır. Daha sonra döndürülen MatchCollection nesnedeki Match nesneleri yineler ve her eşleşmeyle ilgili bilgileri görüntüler.

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 112.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 207.
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.

Örnek 2

Aşağıdaki örnek, bir kerede Match(String, String) bir eşleşme almak için ve NextMatch yöntemlerini çağırır.

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 112.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 207.
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.

Açıklamalar

Match Nesnesi sabittir ve ortak oluşturucuya sahip değildir. sınıfının bir örneği Match yöntemi tarafından Regex.Match döndürülür ve dizedeki ilk desen eşleşmesini temsil eder. Sonraki eşleşmeler, yöntemi tarafından Match döndürülen nesnelerle Match.NextMatch temsil edilir. Ayrıca, sıfır, bir veya daha fazla Match nesneden oluşan bir MatchCollection nesne yöntemi tarafından Regex.Matches döndürülür.

Regex.Matches Yöntem bir giriş dizesindeki normal ifade deseni ile eşleşmezse boş MatchCollection bir nesne döndürür. Daha sonra C# dilinde bir foreach yapı veya Visual Basic içindeki bir For Each yapıyı kullanarak koleksiyonu yineleyebilirsiniz.

Regex.Match Yöntem normal ifade deseni ile eşleşmezse, değerine eşit Match.Emptybir Match nesne döndürür. Eşleşmenin Success başarılı olup olmadığını belirlemek için özelliğini kullanabilirsiniz. Aşağıdaki örnek, bir gösterim sağlar.

// 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

Bir desen eşleşmesi başarılı olursa, Value özelliği eşleşen alt dizeyi içerir, Index özelliği, eşleşen alt dizenin giriş dizesindeki sıfır tabanlı başlangıç konumunu gösterir ve Length özellik de giriş dizesindeki eşleşen alt dizenin uzunluğunu gösterir.

Tek bir eşleşme birden çok yakalama grubu içerebileceğinden, Match öğesini döndüren GroupCollectionbir Groups özelliği vardır. Örneğin Match kendisi, Match.Groups[0] tüm eşleşmeyi temsil eden (Match.Groups(0) Visual Basic içinde) koleksiyonundaki ilk nesneye eşdeğerdir. Yakalanan gruplara bir eşleşmede aşağıdaki yollarla erişebilirsiniz:

  • (C#) veya For Each (Visual Basic) yapısı foreach kullanarak nesnenin GroupCollection üyelerini yineleyebilirsiniz.

  • Yakalama grubunun sayısına göre grupları almak için özelliğini kullanabilirsiniz GroupCollection.Item[Int32] . Örnek Regex.GetGroupNumbers yöntemini çağırarak normal ifadede hangi numaralı grupların mevcut olduğunu belirleyebileceğinizi unutmayın.

  • Yakalama grubunun adına göre grupları almak için özelliğini kullanabilirsiniz GroupCollection.Item[String] . Örnek Regex.GetGroupNames() yöntemini çağırarak normal ifadede hangi adlandırılmış grupların mevcut olduğunu belirleyebileceğinizi unutmayın.

Özellikler

Captures

Yakalama grubuyla eşleşen tüm yakalamaların bir koleksiyonunu, en soldaki en iç birinci sırada (veya normal ifade seçeneğiyle RightToLeft değiştirildiğinde en içteki-en sağdaki-ilk sırada) alır. Koleksiyonda sıfır veya daha fazla öğe olabilir.

(Devralındığı yer: Group)
Empty

Boş grubu alır. Tüm başarısız eşleşmeler bu boş eşleşmeyi döndürür.

Groups

Normal ifadeyle eşleşen grup koleksiyonunu alır.

Index

Yakalanan alt dizenin ilk karakterinin bulunduğu özgün dizedeki konum.

(Devralındığı yer: Capture)
Length

Yakalanan alt dizenin uzunluğunu alır.

(Devralındığı yer: Capture)
Name

Geçerli örnek tarafından temsil edilen yakalama grubunun adını döndürür.

(Devralındığı yer: Group)
Success

Eşleşmenin başarılı olup olmadığını belirten bir değer alır.

(Devralındığı yer: Group)
Value

Yakalanan alt dizeyi giriş dizesinden alır.

(Devralındığı yer: Capture)
ValueSpan

Yakalanan yayılmayı giriş dizesinden alır.

(Devralındığı yer: Capture)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
NextMatch()

Son eşleşmenin sona erdiği konumdan (son eşleşen karakterden sonraki karakterde) başlayarak sonraki eşleşmenin sonuçlarını içeren yeni Match bir nesne döndürür.

Result(String)

Belirtilen değiştirme deseninin genişlemesini döndürür.

Synchronized(Match)

Birden çok iş parçacığı arasında paylaşmaya uygun sağlanan örnekle eşdeğer bir Match örnek döndürür.

ToString()

özelliğini çağırarak giriş dizesinden yakalanan alt dizeyi Value alır.

(Devralındığı yer: Capture)

Şunlara uygulanır

Ayrıca bkz.