Bagikan melalui


Regex.Matches Metode

Definisi

Mencari string input untuk semua kemunculan ekspresi reguler dan mengembalikan semua kecocokan.

Overload

Matches(String, String, RegexOptions, TimeSpan)

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler tertentu, menggunakan opsi pencocokan dan interval waktu habis yang ditentukan.

Matches(String, String, RegexOptions)

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler tertentu, menggunakan opsi pencocokan yang ditentukan.

Matches(String, Int32)

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler, dimulai pada posisi awal yang ditentukan dalam string.

Matches(String)

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler.

Matches(String, String)

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler tertentu.

Matches(String, String, RegexOptions, TimeSpan)

Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler tertentu, menggunakan opsi pencocokan dan interval waktu habis yang ditentukan.

public:
 static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As MatchCollection

Parameter

input
String

String untuk mencari kecocokan.

pattern
String

Pola regex yang cocok.

options
RegexOptions

Kombinasi bitwise dari nilai enumerasi yang menentukan opsi untuk pencocokan.

matchTimeout
TimeSpan

Interval waktu habis, atau InfiniteMatchTimeout untuk menunjukkan bahwa metode tidak boleh kehabisan waktu.

Mengembalikan

Kumpulan objek yang Match ditemukan oleh pencarian. Jika tidak ada kecocokan yang ditemukan, metode mengembalikan objek koleksi kosong.

Pengecualian

Terjadi kesalahan penguraian ekspresi reguler.

input atau pattern adalah null.

options bukan kombinasi RegexOptions nilai bitwise yang valid.

-atau-

matchTimeout negatif, nol, atau lebih besar dari sekitar 24 hari.

Contoh

Contoh berikut memanggil Matches(String, String, RegexOptions, TimeSpan) metode untuk melakukan perbandingan peka huruf besar/kecil yang cocok dengan kata apa pun dalam kalimat yang berakhiran "es". Kemudian memanggil Matches(String, String, RegexOptions, TimeSpan) metode untuk melakukan perbandingan pola yang tidak peka huruf besar/kecil dengan string input. Dalam kedua kasus, interval waktu habis diatur ke satu detik. Seperti yang ditunjukkan oleh output, kedua metode mengembalikan hasil yang berbeda.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "NOTES: Any notes or comments are optional.";
      
      // Call Matches method without specifying any options.
      try {
         foreach (Match match in Regex.Matches(sentence, pattern,
                                               RegexOptions.None,
                                               TimeSpan.FromSeconds(1)))
            Console.WriteLine("Found '{0}' at position {1}", 
                              match.Value, match.Index);
      }
      catch (RegexMatchTimeoutException) {
         // Do Nothing: Assume that timeout represents no match.
      }
      Console.WriteLine();

      // Call Matches method for case-insensitive matching.
      try { 
         foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
            Console.WriteLine("Found '{0}' at position {1}", 
                              match.Value, match.Index);
      }
      catch (RegexMatchTimeoutException) {}
   }
}
// The example displays the following output:
//       Found 'notes' at position 11
//       
//       Found 'NOTES' at position 0
//       Found 'notes' at position 11
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "NOTES: Any notes or comments are optional."
      
      ' Call Matches method without specifying any options.
      For Each match As Match In Regex.Matches(sentence, pattern, 
                                               RegexOptions.None, 
                                               TimeSpan.FromSeconds(1))
         Try
            Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
         Catch e As RegexMatchTimeoutException
            ' Do Nothing: Assume that timeout represents no match.
         End Try
      Next
      Console.WriteLine()
      
      ' Call Matches method for case-insensitive matching.
      Try
         For Each match As Match In Regex.Matches(sentence, pattern, 
                                                  RegexOptions.IgnoreCase,
                                                  TimeSpan.FromSeconds(1))
            Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
         Next
      Catch de As RegexMatchTimeoutException
         ' Do Nothing: Assume that timeout represents no match.
      End Try
   End Sub
End Module
' The example displays the following output:
'       Found 'notes' at position 11
'       
'       Found 'NOTES' at position 0
'       Found 'notes' at position 11

Pola regex \b\w+es\b didefinisikan seperti yang ditunjukkan pada tabel berikut.

Pola Deskripsi
\b Memulai pencocokan dalam batas kata.
\w+ Cocokkan satu atau lebih karakter kata.
es Cocokkan string harfiah "es".
\b Mengakhiri pencocokan dalam batas kata.

Keterangan

Metode Matches(String, String, RegexOptions, TimeSpan) ini mirip Match(String, String, RegexOptions, TimeSpan) dengan metode , kecuali bahwa metode mengembalikan informasi tentang semua kecocokan yang ditemukan dalam string input, bukan satu kecocokan. Ini setara dengan kode berikut:

   try {
      Match match = Regex.Match(input, pattern, options,
                                TimeSpan.FromSeconds(1));
      while (match.Success) {
            // Handle match here...

            match = match.NextMatch();
      }  
   }
   catch (RegexMatchTimeoutException) {
      // Do nothing: assume that exception represents no match.
   }
   Try
      Dim match As Match = Regex.Match(input, pattern, options, 
                                       TimeSpan.FromSeconds(1))
      Do While match.Success
            ' Handle match here...

            match = match.NextMatch()
      Loop  
   Catch e As RegexMatchTimeoutException
      ' Do nothing: assume that exception represents no match.
   End Try

Metode statis Matches setara dengan membangun Regex objek dengan pola ekspresi reguler yang ditentukan dan memanggil metode Matchesinstans .

Parameter pattern terdiri dari elemen bahasa ekspresi reguler yang secara simbolis menggambarkan string yang cocok. Untuk informasi selengkapnya tentang ekspresi reguler, lihat Ekspresi Reguler .NET dan Bahasa Ekspresi Reguler - Referensi Cepat.

Metode ini Matches menggunakan evaluasi malas untuk mengisi objek yang dikembalikan MatchCollection . Mengakses anggota koleksi ini seperti MatchCollection.Count dan MatchCollection.CopyTo menyebabkan koleksi segera diisi. Untuk memanfaatkan evaluasi malas, Anda harus melakukan iterasi koleksi dengan menggunakan konstruksi seperti foreach di C# dan For Each...Next di Visual Basic.

Karena evaluasinya yang malas, memanggil Matches metode tidak memberikan RegexMatchTimeoutException pengecualian. Namun, pengecualian dilemparkan ketika operasi dilakukan pada MatchCollection objek yang dikembalikan oleh metode ini, jika operasi pencocokan melebihi interval waktu habis ini yang ditentukan olehmatchTimeout parameter.

Catatan Bagi Pemanggil

Kami menyarankan agar Anda mengatur parameter ke matchTimeout nilai yang sesuai, seperti dua detik. Jika Anda menonaktifkan waktu habis dengan menentukan InfiniteMatchTimeout, mesin ekspresi reguler menawarkan performa yang sedikit lebih baik. Namun, Anda harus menonaktifkan waktu habis hanya dalam kondisi berikut:

  • Ketika input yang diproses oleh ekspresi reguler berasal dari sumber yang diketahui dan tepercaya atau terdiri dari teks statis. Ini mengecualikan teks yang telah dimasukkan secara dinamis oleh pengguna.

  • Ketika pola ekspresi reguler telah diuji secara menyeluruh untuk memastikan bahwa pola tersebut secara efisien menangani kecocokan, non-kecocokan, dan hampir kecocokan.

  • Ketika pola ekspresi reguler tidak berisi elemen bahasa yang diketahui menyebabkan backtracking yang berlebihan saat memproses kecocokan dekat.

Lihat juga

Berlaku untuk

Matches(String, String, RegexOptions)

Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler tertentu, menggunakan opsi pencocokan yang ditentukan.

public:
 static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions) As MatchCollection

Parameter

input
String

String untuk mencari kecocokan.

pattern
String

Pola regex yang cocok.

options
RegexOptions

Kombinasi bitwise dari nilai enumerasi yang menentukan opsi untuk pencocokan.

Mengembalikan

Kumpulan objek yang Match ditemukan oleh pencarian. Jika tidak ada kecocokan yang ditemukan, metode mengembalikan objek koleksi kosong.

Pengecualian

Terjadi kesalahan penguraian ekspresi reguler.

input atau pattern adalah null.

options bukan kombinasi RegexOptions nilai bitwise yang valid.

Contoh

Contoh berikut memanggil Matches(String, String) metode untuk mengidentifikasi kata apa pun dalam kalimat yang berakhiran "es", lalu memanggil Matches(String, String, RegexOptions) metode untuk melakukan perbandingan pola yang tidak peka huruf besar/kecil dengan string input. Seperti yang ditunjukkan oleh output, kedua metode mengembalikan hasil yang berbeda.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "NOTES: Any notes or comments are optional.";
      
      // Call Matches method without specifying any options.
      foreach (Match match in Regex.Matches(sentence, pattern))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
      Console.WriteLine();

      // Call Matches method for case-insensitive matching.
      foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'notes' at position 11
//       
//       Found 'NOTES' at position 0
//       Found 'notes' at position 11
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "NOTES: Any notes or comments are optional."
      
      ' Call Matches method without specifying any options.
      For Each match As Match In Regex.Matches(sentence, pattern)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
      Console.WriteLine()
      
      ' Call Matches method for case-insensitive matching.
      For Each match As Match In Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'notes' at position 11
'       
'       Found 'NOTES' at position 0
'       Found 'notes' at position 11

Pola regex \b\w+es\b didefinisikan seperti yang ditunjukkan pada tabel berikut.

Pola Deskripsi
\b Memulai pencocokan dalam batas kata.
\w+ Cocokkan satu atau lebih karakter kata.
es Cocokkan string harfiah "es".
\b Mengakhiri pencocokan dalam batas kata.

Keterangan

Metode Matches(String, String, RegexOptions) ini mirip Match(String, String, RegexOptions) dengan metode , kecuali bahwa metode mengembalikan informasi tentang semua kecocokan yang ditemukan dalam string input, bukan satu kecocokan. Ini setara dengan kode berikut:

Match match = Regex.Match(input, pattern, options);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern, options)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Metode statis Matches setara dengan membangun Regex objek dengan pola ekspresi reguler yang ditentukan dan memanggil metode Matchesinstans .

Parameter pattern terdiri dari elemen bahasa ekspresi reguler yang secara simbolis menggambarkan string yang cocok. Untuk informasi selengkapnya tentang ekspresi reguler, lihat Ekspresi Reguler .NET dan Bahasa Ekspresi Reguler - Referensi Cepat.

Metode ini Matches menggunakan evaluasi malas untuk mengisi objek yang dikembalikan MatchCollection . Mengakses anggota koleksi ini seperti MatchCollection.Count dan MatchCollection.CopyTo menyebabkan koleksi segera diisi. Untuk memanfaatkan evaluasi malas, Anda harus melakukan iterasi koleksi dengan menggunakan konstruksi seperti foreach di C# dan For Each...Next di Visual Basic.

Karena evaluasinya yang malas, memanggil Matches(String, String) metode tidak memberikan RegexMatchTimeoutException pengecualian. Namun, pengecualian dilemparkan ketika operasi dilakukan pada MatchCollection objek yang dikembalikan oleh metode ini, jika interval waktu habis ditentukan oleh properti "REGEX_DEFAULT_MATCH_TIMEOUT" dari domain aplikasi saat ini dan operasi yang cocok melebihi interval waktu habis ini.

Catatan Bagi Pemanggil

Metode ini kehabisan waktu setelah interval yang sama dengan nilai batas waktu default domain aplikasi tempatnya dipanggil. Jika nilai waktu habis belum ditentukan untuk domain aplikasi, nilai InfiniteMatchTimeout, yang mencegah waktu habis metode digunakan. Metode statis yang direkomendasikan untuk mengambil beberapa kecocokan pola adalah Matches(String, String, RegexOptions, TimeSpan), yang memungkinkan Anda mengatur interval waktu habis.

Lihat juga

Berlaku untuk

Matches(String, Int32)

Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler, dimulai pada posisi awal yang ditentukan dalam string.

public:
 System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, int startat);
public System.Text.RegularExpressions.MatchCollection Matches (string input, int startat);
member this.Matches : string * int -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String, startat As Integer) As MatchCollection

Parameter

input
String

String untuk mencari kecocokan.

startat
Int32

Posisi karakter dalam string input untuk memulai pencarian.

Mengembalikan

Kumpulan objek yang Match ditemukan oleh pencarian. Jika tidak ada kecocokan yang ditemukan, metode mengembalikan objek koleksi kosong.

Pengecualian

inputadalah null.

startat kurang dari nol atau lebih besar dari inputpanjang .

Contoh

Contoh berikut menggunakan Match(String) metode untuk menemukan kata pertama dalam kalimat yang berakhiran "es", lalu memanggil Matches(String, Int32) metode untuk mengidentifikasi kata tambahan yang berakhiran "es".

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      Regex rgx = new Regex(pattern);
      string sentence = "Who writes these notes and uses our paper?";
      
      // Get the first match.
      Match match = rgx.Match(sentence);
      if (match.Success) {
         Console.WriteLine("Found first 'es' in '{0}' at position {1}", 
                           match.Value, match.Index);
         // Get any additional matches.
         foreach (Match m in rgx.Matches(sentence, match.Index + match.Length))
            Console.WriteLine("Also found '{0}' at position {1}", 
                              m.Value, m.Index);
      }   
   }
}
// The example displays the following output:
//       Found first 'es' in 'writes' at position 4
//       Also found 'notes' at position 17
//       Also found 'uses' at position 27
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim rgx As New Regex(pattern)
      Dim sentence As String = "Who writes these notes and uses our paper?"
      
      ' Get the first match.
      Dim match As Match = rgx.Match(sentence)
      If match.Success Then
         Console.WriteLine("Found first 'es' in '{0}' at position {1}", _
                           match.Value, match.Index)
         ' Get any additional matches.
         For Each match In rgx.Matches(sentence, match.Index + match.Length)
            Console.WriteLine("Also found '{0}' at position {1}", _
                              match.Value, match.Index)
         Next
      End If   
   End Sub
End Module
' The example displays the following output:
'       Found first 'es' in 'writes' at position 4
'       Also found 'notes' at position 17
'       Also found 'uses' at position 27

Pola regex \b\w+es\b didefinisikan seperti yang ditunjukkan pada tabel berikut.

Pola Deskripsi
\b Memulai pencocokan dalam batas kata.
\w+ Cocokkan satu atau lebih karakter kata.
es Cocokkan string harfiah "es".
\b Mengakhiri pencocokan dalam batas kata.

Keterangan

Metode Matches(String, Int32) ini mirip Match(String, Int32) dengan metode , kecuali bahwa metode mengembalikan informasi tentang semua kecocokan yang ditemukan dalam string input, bukan satu kecocokan. Ini setara dengan kode berikut:

Match match = regex.Match(input, startAt);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = regex.Match(input, startAt)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Pola ekspresi reguler tempat Matches(String, Int32) pencarian metode ditentukan oleh panggilan ke salah Regex satu konstruktor kelas. Untuk informasi selengkapnya tentang elemen yang dapat membentuk pola ekspresi reguler, lihat Bahasa Ekspresi Reguler - Referensi Cepat.

Untuk detail selengkapnya tentang startat, lihat bagian Keterangan dari Match(String, Int32).

Metode ini Matches menggunakan evaluasi malas untuk mengisi objek yang dikembalikan MatchCollection . Mengakses anggota koleksi ini seperti MatchCollection.Count dan MatchCollection.CopyTo menyebabkan koleksi segera diisi. Untuk memanfaatkan evaluasi malas, Anda harus melakukan iterasi koleksi dengan menggunakan konstruksi seperti foreach di C# dan For Each...Next di Visual Basic.

Karena evaluasinya yang malas, memanggil Matches(String, Int32) metode tidak melemparkan RegexMatchTimeoutException pengecualian. Namun, pengecualian dilemparkan ketika operasi dilakukan pada MatchCollection objek yang dikembalikan oleh metode ini, jika MatchTimeout properti tidak Regex.InfiniteMatchTimeout dan operasi pencocokan melebihi interval waktu habis.

Lihat juga

Berlaku untuk

Matches(String)

Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler.

public:
 System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input);
public System.Text.RegularExpressions.MatchCollection Matches (string input);
member this.Matches : string -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String) As MatchCollection

Parameter

input
String

String untuk mencari kecocokan.

Mengembalikan

Kumpulan objek yang Match ditemukan oleh pencarian. Jika tidak ada kecocokan yang ditemukan, metode mengembalikan objek koleksi kosong.

Pengecualian

inputadalah null.

Contoh

Contoh berikut menggunakan Matches(String) metode untuk mengidentifikasi kata apa pun dalam kalimat yang berakhiran "es".

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      Regex rgx = new Regex(pattern);
      string sentence = "Who writes these notes?";
      
      foreach (Match match in rgx.Matches(sentence))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'writes' at position 4
//       Found 'notes' at position 17
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim rgx As New Regex(pattern)
      Dim sentence As String = "Who writes these notes?"
      
      For Each match As Match In rgx.Matches(sentence)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'writes' at position 4
'       Found 'notes' at position 17

Pola regex \b\w+es\b didefinisikan seperti yang ditunjukkan pada tabel berikut.

Pola Deskripsi
\b Memulai pencocokan dalam batas kata.
\w+ Cocokkan satu atau lebih karakter kata.
es Cocokkan string harfiah "es".
\b Mengakhiri pencocokan dalam batas kata.

Keterangan

Metode Matches(String) ini mirip Match(String) dengan metode , kecuali bahwa metode mengembalikan informasi tentang semua kecocokan yang ditemukan dalam string input, bukan satu kecocokan. Ini setara dengan kode berikut:

Match match = regex.Match(input);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = regex.Match(input)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Koleksi hanya mencakup kecocokan dan dihentikan pada non-pertandingan pertama.

Pola ekspresi reguler tempat Matches(String) pencarian metode ditentukan oleh panggilan ke salah Regex satu konstruktor kelas. Untuk informasi selengkapnya tentang elemen yang dapat membentuk pola ekspresi reguler, lihat Bahasa Ekspresi Reguler - Referensi Cepat.

Metode ini Matches menggunakan evaluasi malas untuk mengisi objek yang dikembalikan MatchCollection . Mengakses anggota koleksi ini seperti MatchCollection.Count dan MatchCollection.CopyTo menyebabkan koleksi segera diisi. Untuk memanfaatkan evaluasi malas, Anda harus melakukan iterasi koleksi dengan menggunakan konstruksi seperti foreach di C# dan For Each...Next di Visual Basic.

Karena evaluasinya yang malas, memanggil Matches(String) metode tidak melemparkan RegexMatchTimeoutException pengecualian. Namun, pengecualian dilemparkan ketika operasi dilakukan pada MatchCollection objek yang dikembalikan oleh metode ini, jika MatchTimeout properti tidak Regex.InfiniteMatchTimeout dan operasi pencocokan melebihi interval waktu habis.

Lihat juga

Berlaku untuk

Matches(String, String)

Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs
Sumber:
Regex.Match.cs

Mencari string input yang ditentukan untuk semua kemunculan ekspresi reguler tertentu.

public:
 static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern);
static member Matches : string * string -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String) As MatchCollection

Parameter

input
String

String untuk mencari kecocokan.

pattern
String

Pola regex yang cocok.

Mengembalikan

Kumpulan objek yang Match ditemukan oleh pencarian. Jika tidak ada kecocokan yang ditemukan, metode mengembalikan objek koleksi kosong.

Pengecualian

Terjadi kesalahan penguraian ekspresi reguler.

input atau pattern adalah null.

Contoh

Contoh berikut menggunakan Matches(String, String) metode untuk mengidentifikasi kata apa pun dalam kalimat yang berakhiran "es".

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "Who writes these notes?";
      
      foreach (Match match in Regex.Matches(sentence, pattern))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'writes' at position 4
//       Found 'notes' at position 17
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "Who writes these notes?"
      For Each match As Match In Regex.Matches(sentence, pattern)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'writes' at position 4
'       Found 'notes' at position 17

Pola regex \b\w+es\b didefinisikan seperti yang ditunjukkan pada tabel berikut.

Pola Deskripsi
\b Memulai pencocokan dalam batas kata.
\w+ Cocokkan satu atau lebih karakter kata.
es Cocokkan string harfiah "es".
\b Mengakhiri pencocokan dalam batas kata.

Keterangan

Metode Matches(String, String) ini mirip Match(String, String) dengan metode , kecuali bahwa metode mengembalikan informasi tentang semua kecocokan yang ditemukan dalam string input, bukan satu kecocokan. Ini setara dengan kode berikut:

Match match = Regex.Match(input, pattern);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Metode statis Matches setara dengan membangun Regex objek dengan pola ekspresi reguler yang ditentukan dan memanggil metode Matchesinstans .

Parameter pattern terdiri dari elemen bahasa ekspresi reguler yang secara simbolis menggambarkan string yang cocok. Untuk informasi selengkapnya tentang ekspresi reguler, lihat Ekspresi Reguler .NET dan Bahasa Ekspresi Reguler - Referensi Cepat.

Metode ini Matches menggunakan evaluasi malas untuk mengisi objek yang dikembalikan MatchCollection . Mengakses anggota koleksi ini seperti MatchCollection.Count dan MatchCollection.CopyTo menyebabkan koleksi segera diisi. Untuk memanfaatkan evaluasi malas, Anda harus melakukan iterasi koleksi dengan menggunakan konstruksi seperti foreach di C# dan For Each...Next di Visual Basic.

Karena evaluasinya yang malas, memanggil Matches(String, String) metode tidak melemparkan RegexMatchTimeoutException pengecualian. Namun, pengecualian dilemparkan ketika operasi dilakukan pada MatchCollection objek yang dikembalikan oleh metode ini, jika interval waktu habis ditentukan oleh properti "REGEX_DEFAULT_MATCH_TIMEOUT" dari domain aplikasi saat ini dan operasi yang cocok melebihi interval waktu habis ini.

Catatan Bagi Pemanggil

Metode ini kehabisan waktu setelah interval yang sama dengan nilai batas waktu default domain aplikasi di mana ia dipanggil. Jika nilai waktu habis belum ditentukan untuk domain aplikasi, nilai InfiniteMatchTimeout, yang mencegah metode kehabisan waktu, digunakan. Metode statis yang direkomendasikan untuk mengambil beberapa kecocokan pola adalah Matches(String, String, RegexOptions, TimeSpan), yang memungkinkan Anda menentukan interval waktu habis.

Lihat juga

Berlaku untuk