Regex.Matches Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 Matches
instans .
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 Matches
instans .
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
input
adalah null
.
startat
kurang dari nol atau lebih besar dari input
panjang .
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
input
adalah 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 Matches
instans .
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.