Regex.Matches Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir giriş dizesinde normal ifadenin tüm oluşumlarını arar ve tüm eşleşmeleri döndürür.
Aşırı Yüklemeler
Matches(String, String, RegexOptions, TimeSpan) |
Belirtilen eşleşen seçenekleri ve zaman aşımı aralığını kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar. |
Matches(String, String, RegexOptions) |
Belirtilen eşleştirme seçeneklerini kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar. |
Matches(String, Int32) |
Belirtilen giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin tüm oluşumlarını arar. |
Matches(String) |
Normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar. |
Matches(String, String) |
Belirtilen normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar. |
Matches(String, String, RegexOptions, TimeSpan)
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
Belirtilen eşleşen seçenekleri ve zaman aşımı aralığını kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar.
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
Parametreler
- input
- String
Eşleşme aranacak dize.
- pattern
- String
Eşleştirecek normal ifade deseni.
- options
- RegexOptions
Eşleştirme seçeneklerini belirten numaralandırma değerlerinin bit düzeyinde birleşimi.
- matchTimeout
- TimeSpan
Zaman aşımı aralığı veya InfiniteMatchTimeout yöntemin zaman aşımına neden olmaması gerektiğini belirtmek için.
Döndürülenler
Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.
Özel durumlar
Normal ifade ayrıştırma hatası oluştu.
input
veya pattern
şeklindedir null
.
options
, değerlerin RegexOptions bit düzeyinde geçerli bir bileşimi değildir.
-veya-
matchTimeout
negatif, sıfır veya yaklaşık 24 günden büyük.
Örnekler
Aşağıdaki örnek, "es" ile biten tümcedeki herhangi bir sözcükle eşleşen büyük/küçük harfe duyarlı bir karşılaştırma yapmak için yöntemini çağırır Matches(String, String, RegexOptions, TimeSpan) . Ardından giriş dizesiyle desenin Matches(String, String, RegexOptions, TimeSpan) büyük/küçük harfe duyarlı olmayan bir karşılaştırmasını gerçekleştirmek için yöntemini çağırır. Her iki durumda da zaman aşımı aralığı bir saniye olarak ayarlanır. Çıktıda gösterildiği gibi iki yöntem farklı sonuçlar döndürür.
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
Normal ifade deseni \b\w+es\b
aşağıdaki tabloda gösterildiği gibi tanımlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
\w+ |
Bir veya daha fazla sözcük karakteri eşleştir. |
es |
"es" değişmez dizesini eşleştirin. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
Matches(String, String, RegexOptions, TimeSpan) yöntemi yöntemine Match(String, String, RegexOptions, TimeSpan) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:
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
Statik Matches
yöntemler, belirtilen normal ifade desenine sahip bir Regex nesne oluşturma ve örnek yöntemini Matches
çağırma ile eşdeğerdir.
parametresi, pattern
eşleşecek dizeyi sembolik olarak tanımlayan normal ifade dili öğelerinden oluşur. Normal ifadeler hakkında daha fazla bilgi için bkz . .NET Normal İfadeleri ve Normal İfade Dili - Hızlı Başvuru.
yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek, MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için Visual Basic'te C# ve For Each
...Next
gibi foreach
bir yapı kullanarak koleksiyonu yinelemeniz gerekir.
Gecikmeli değerlendirmesi nedeniyle yöntemini çağırmak Matches bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, eşleşen bir işlem parametresi tarafından belirtilen bu zaman aşımı aralığını aşarsa, bu yöntem tarafındanmatchTimeout
döndürülen nesne üzerinde MatchCollection bir işlem gerçekleştirildiğinde bir özel durum oluşturulur.
Arayanlara Notlar
parametresini matchTimeout
iki saniye gibi uygun bir değere ayarlamanızı öneririz. belirterek InfiniteMatchTimeoutzaman aşımlarını devre dışı bırakırsanız, normal ifade altyapısı biraz daha iyi performans sunar. Ancak, zaman aşımlarını yalnızca aşağıdaki koşullar altında devre dışı bırakmanız gerekir:
Normal bir ifade tarafından işlenen giriş bilinen ve güvenilir bir kaynaktan türetildiğinde veya statik metinden oluştuğunda. Bu, kullanıcılar tarafından dinamik olarak giriş yapılan metinleri dışlar.
Normal ifade deseni eşleşmeleri, eşleşme olmayanları ve yakın eşleşmeleri verimli bir şekilde işlediğinden emin olmak için kapsamlı bir şekilde test edildiğinde.
Normal ifade deseni, yakın bir eşleşmeyi işlerken aşırı geri dönüşe neden olduğu bilinen bir dil öğesi içermediğinde.
Ayrıca bkz.
Şunlara uygulanır
Matches(String, String, RegexOptions)
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
Belirtilen eşleştirme seçeneklerini kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar.
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
Parametreler
- input
- String
Eşleşme aranacak dize.
- pattern
- String
Eşleştirecek normal ifade deseni.
- options
- RegexOptions
Eşleştirme seçeneklerini belirten numaralandırma değerlerinin bit düzeyinde birleşimi.
Döndürülenler
Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.
Özel durumlar
Normal ifade ayrıştırma hatası oluştu.
input
veya pattern
şeklindedir null
.
options
, değerlerin RegexOptions bit düzeyinde geçerli bir bileşimi değildir.
Örnekler
Aşağıdaki örnek, "es" ile biten bir cümledeki herhangi bir sözcüğü tanımlamak için yöntemini çağırır Matches(String, String) ve ardından giriş dizesiyle desenin büyük/küçük harfe duyarsız bir karşılaştırmasını gerçekleştirmek için yöntemini çağırır Matches(String, String, RegexOptions) . Çıktıda gösterildiği gibi iki yöntem farklı sonuçlar döndürür.
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
Normal ifade deseni \b\w+es\b
aşağıdaki tabloda gösterildiği gibi tanımlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
\w+ |
Bir veya daha fazla sözcük karakteri eşleştir. |
es |
"es" değişmez dizesini eşleştirin. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
Matches(String, String, RegexOptions) yöntemi yöntemine Match(String, String, RegexOptions) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:
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
Statik Matches
yöntemler, belirtilen normal ifade desenine sahip bir Regex nesne oluşturma ve örnek yöntemini Matches
çağırma ile eşdeğerdir.
parametresi, pattern
eşleşecek dizeyi sembolik olarak tanımlayan normal ifade dili öğelerinden oluşur. Normal ifadeler hakkında daha fazla bilgi için bkz . .NET Normal İfadeleri ve Normal İfade Dili - Hızlı Başvuru.
yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek, MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için Visual Basic'te C# ve For Each
...Next
gibi foreach
bir yapı kullanarak koleksiyonu yinelemeniz gerekir.
Gecikmeli değerlendirmesi nedeniyle yöntemini çağırmak Matches(String, String) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, geçerli uygulama etki alanının "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği tarafından bir zaman aşımı aralığı tanımlandığında ve eşleşen bir işlem bu zaman aşımı aralığını aşarsa, bu yöntem tarafından döndürülen nesnede MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.
Arayanlara Notlar
Bu yöntem, çağrıldığı uygulama etki alanının varsayılan zaman aşımı değerine eşit bir aralıktan sonra zaman aşımına uğradı. Uygulama etki alanı için bir zaman aşımı değeri tanımlanmamışsa, yöntemin zaman aşımına girmesini engelleyen değeri InfiniteMatchTimeoutkullanılır. Birden çok desen eşleşmesini almak için önerilen statik yöntem, zaman aşımı aralığını ayarlamanıza olanak tanıyan yöntemidir Matches(String, String, RegexOptions, TimeSpan).
Ayrıca bkz.
Şunlara uygulanır
Matches(String, Int32)
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
Belirtilen giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin tüm oluşumlarını arar.
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
Parametreler
- input
- String
Eşleşme aranacak dize.
- startat
- Int32
Aramanın başlatıldığı giriş dizesindeki karakter konumu.
Döndürülenler
Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.
Özel durumlar
input
, null
değeridir.
startat
sıfırdan küçük veya uzunluğundan büyük.input
Örnekler
Aşağıdaki örnek, "es" ile biten bir cümledeki ilk sözcüğü bulmak için yöntemini kullanır Match(String) ve ardından "es" ile biten ek sözcükleri tanımlamak için yöntemini çağırır Matches(String, Int32) .
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
Normal ifade deseni \b\w+es\b
aşağıdaki tabloda gösterildiği gibi tanımlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
\w+ |
Bir veya daha fazla sözcük karakteri eşleştir. |
es |
"es" değişmez dizesini eşleştirin. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
Matches(String, Int32) yöntemi yöntemine Match(String, Int32) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:
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
Yönteminin arama yaptığı Matches(String, Int32) normal ifade deseni, sınıf oluşturucularından Regex birine yapılan çağrı tarafından tanımlanır. Normal ifade deseni oluşturabilen öğeler hakkında daha fazla bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
hakkında startat
daha fazla ayrıntı için öğesinin Açıklamalar bölümüne Match(String, Int32)bakın.
yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek ve MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için, Visual Basic'te C# ve For Each
...Next
gibi foreach
bir yapı kullanarak koleksiyonu yinelemeniz gerekir.
Yavaş değerlendirmesi nedeniyle yöntemini çağırmak Matches(String, Int32) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, özellik değilse Regex.InfiniteMatchTimeout ve eşleşen bir işlem zaman aşımı aralığını aşarsaMatchTimeout, bu yöntem tarafından döndürülen nesne üzerinde MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.
Ayrıca bkz.
Şunlara uygulanır
Matches(String)
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
Belirtilen giriş dizesinde normal ifadenin tüm oluşumlarını arar.
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
Parametreler
- input
- String
Eşleşme aranacak dize.
Döndürülenler
Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.
Özel durumlar
input
, null
değeridir.
Örnekler
Aşağıdaki örnek, "es" ile biten tümcedeki sözcükleri tanımlamak için yöntemini kullanır Matches(String) .
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
Normal ifade deseni \b\w+es\b
aşağıdaki tabloda gösterildiği gibi tanımlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
\w+ |
Bir veya daha fazla sözcük karakteri eşleştir. |
es |
"es" değişmez dizesini eşleştirin. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
Matches(String) yöntemi yöntemine Match(String) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:
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
Koleksiyon yalnızca eşleşmeleri içerir ve ilk eşleşme olmayanda sonlanır.
Yönteminin arama yaptığı Matches(String) normal ifade deseni, sınıf oluşturucularından Regex birine yapılan çağrı tarafından tanımlanır. Normal ifade deseni oluşturabilen öğeler hakkında daha fazla bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek ve MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için, Visual Basic'te C# ve For Each
...Next
gibi foreach
bir yapı kullanarak koleksiyonu yinelemeniz gerekir.
Yavaş değerlendirmesi nedeniyle yöntemini çağırmak Matches(String) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, özellik değilse Regex.InfiniteMatchTimeout ve eşleşen bir işlem zaman aşımı aralığını aşarsaMatchTimeout, bu yöntem tarafından döndürülen nesne üzerinde MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.
Ayrıca bkz.
Şunlara uygulanır
Matches(String, String)
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
- Kaynak:
- Regex.Match.cs
Belirtilen normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.
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
Parametreler
- input
- String
Eşleşme aranacak dize.
- pattern
- String
Eşleştirecek normal ifade deseni.
Döndürülenler
Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.
Özel durumlar
Normal ifade ayrıştırma hatası oluştu.
input
veya pattern
şeklindedir null
.
Örnekler
Aşağıdaki örnek, "es" ile biten bir cümledeki herhangi bir sözcüğü tanımlamak için yöntemini kullanır Matches(String, String) .
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
Normal ifade deseni \b\w+es\b
aşağıdaki tabloda gösterildiği gibi tanımlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
\w+ |
Bir veya daha fazla sözcük karakteri eşleştir. |
es |
"es" değişmez dizesini eşleştirin. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
Matches(String, String) yöntemi yöntemine Match(String, String) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:
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
Statik Matches
yöntemler, belirtilen normal ifade desenine sahip bir Regex nesne oluşturmak ve örnek yöntemini Matches
çağırmakla eşdeğerdir.
parametresi, pattern
eşleşecek dizeyi sembolik olarak tanımlayan normal ifade dili öğelerinden oluşur. Normal ifadeler hakkında daha fazla bilgi için bkz . .NET Normal İfadeleri ve Normal İfade Dili - Hızlı Başvuru.
yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek ve MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için, Visual Basic'te C# ve For Each
...Next
gibi foreach
bir yapı kullanarak koleksiyonu yinelemeniz gerekir.
Yavaş değerlendirmesi nedeniyle yöntemini çağırmak Matches(String, String) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, geçerli uygulama etki alanının "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği tarafından bir zaman aşımı aralığı tanımlanırsa ve eşleşen bir işlem bu zaman aşımı aralığını aşarsa, bu yöntem tarafından döndürülen nesnede MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.
Arayanlara Notlar
Bu yöntem, çağrıldığı uygulama etki alanının varsayılan zaman aşımı değerine eşit bir aralıktan sonra zaman aşımına uğradı. Uygulama etki alanı için bir zaman aşımı değeri tanımlanmamışsa, yönteminin zaman aşımına geçmesini engelleyen değeri InfiniteMatchTimeoutkullanılır. Birden çok desen eşleşmesini almak için önerilen statik yöntem, zaman aşımı aralığını belirtmenize olanak tanıyan yöntemidir Matches(String, String, RegexOptions, TimeSpan).