Regex.Match 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.
Normal ifade deseni ile eşleşen bir alt dize için giriş dizesini arar ve ilk oluşumu tek Match bir nesne olarak döndürür.
Aşırı Yüklemeler
Match(String, String, RegexOptions) |
Belirtilen eşleştirme seçeneklerini kullanarak belirtilen normal ifadenin ilk oluşumu için giriş dizesini arar. |
Match(String) |
Oluşturucuda belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini Regex arar. |
Match(String, Int32) |
Giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin ilk oluşumunu arar. |
Match(String, String) |
Belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini arar. |
Match(String, Int32, Int32) |
Belirtilen başlangıç konumundan başlayarak ve yalnızca belirtilen sayıda karakterde arama yaparak normal ifadenin ilk oluşumu için giriş dizesini arar. |
Match(String, String, RegexOptions, TimeSpan) |
Belirtilen eşleştirme seçeneklerini ve zaman aşımı aralığını kullanarak belirtilen normal ifadenin ilk oluşumu için giriş dizesini arar. |
Match(String, String, RegexOptions)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Belirtilen eşleştirme seçeneklerini kullanarak belirtilen normal ifadenin ilk oluşumu için giriş dizesini arar.
public:
static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions) As Match
Parametreler
- input
- String
Eşleşme aranacak dize.
- pattern
- String
Eşleştirecek normal ifade deseni.
- options
- RegexOptions
Eşleştirme seçenekleri sağlayan numaralandırma değerlerinin bit düzeyinde birleşimi.
Döndürülenler
Eşleşme hakkında bilgi içeren bir nesne.
Ö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.
Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Örnekler
Aşağıdaki örnek, "a" harfiyle başlayan sözcüklerle eşleşen normal bir ifade tanımlar. Normal ifadenin RegexOptions.IgnoreCase hem büyük harf "a" hem de küçük harf "a" ile başlayan sözcükleri bulmasını sağlamak için seçeneğini kullanır.
using System;
using System.Text.RegularExpressions;
namespace Examples
{
public class Example2
{
public static void Main()
{
string pattern = @"\ba\w*\b";
string input = "An extraordinary day dawns with each new day.";
Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
if (m.Success)
Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index);
}
}
}
// The example displays the following output:
// Found 'An' at position 0.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\ba\w*\b"
Dim input As String = "An extraordinary day dawns with each new day."
Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
If m.Success Then
Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index)
End If
End Sub
End Module
' The example displays the following output:
' Found 'An' at position 0.
Normal ifade deseni \ba\w*\b
aşağıdaki tabloda gösterildiği gibi yorumlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
a |
"a" karakteriyle eşleş. |
\w* |
Sıfır, bir veya daha fazla sözcük karakteri eşleştirin. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
yöntemi, Match(String, String, RegexOptions) bir giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
Statik Match(String, String, RegexOptions) yöntem, oluşturucu ile bir Regex nesne oluşturmak ve örnek Match(String) yöntemini çağırmakla Regex(String, RegexOptions) 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.
Döndürülen Match nesnenin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnenin Value özelliği normal ifade deseni ile eşleşen alt dizeyi input
içerir. Eşleşme bulunmazsa değeri olur String.Empty.
Bu yöntem, içinde input
bulunan ve normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Döndürülen Match nesnenin NextMatch yöntemini art arda çağırarak sonraki eşleşmeleri alabilirsiniz. Ayrıca yöntemini çağırarak tek bir yöntem çağrısındaki tüm eşleşmeleri Regex.Matches(String, String, RegexOptions) alabilirsiniz.
Eşleşen RegexMatchTimeoutException işlemin yürütme süresi yöntemin çağrıldığı uygulama etki alanı için belirtilen zaman aşımı aralığını aşarsa özel durum oluşturulur. Uygulama etki alanının özelliklerinde zaman aşımı tanımlanmamışsa veya zaman aşımı değeri ise Regex.InfiniteMatchTimeoutözel durum oluşturmaz.
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. Desen eşleşmesini almak için önerilen statik yöntem, zaman aşımı aralığını ayarlamanıza olanak tanıyan yöntemidir Match(String, String).
Ayrıca bkz.
Şunlara uygulanır
Match(String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Oluşturucuda belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini Regex arar.
public:
System::Text::RegularExpressions::Match ^ Match(System::String ^ input);
public System.Text.RegularExpressions.Match Match (string input);
member this.Match : string -> System.Text.RegularExpressions.Match
Public Function Match (input As String) As Match
Parametreler
- input
- String
Eşleşme aranacak dize.
Döndürülenler
Eşleşme hakkında bilgi içeren bir nesne.
Özel durumlar
input
, null
değeridir.
Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Örnekler
Aşağıdaki örnek bir dizede normal ifade deseni eşleşmelerini bulur, ardından eşleşen grupları, yakalamaları ve yakalama konumlarını listeler.
#using <System.dll>
using namespace System;
using namespace System::Text::RegularExpressions;
void main()
{
String^ text = "One car red car blue car";
String^ pat = "(\\w+)\\s+(car)";
// Compile the regular expression.
Regex^ r = gcnew Regex( pat,RegexOptions::IgnoreCase );
// Match the regular expression pattern against a text string.
Match^ m = r->Match(text);
int matchCount = 0;
while ( m->Success )
{
Console::WriteLine( "Match{0}", ++matchCount );
for ( int i = 1; i <= 2; i++ )
{
Group^ g = m->Groups[ i ];
Console::WriteLine( "Group{0}='{1}'", i, g );
CaptureCollection^ cc = g->Captures;
for ( int j = 0; j < cc->Count; j++ )
{
Capture^ c = cc[ j ];
System::Console::WriteLine( "Capture{0}='{1}', Position={2}", j, c, c->Index );
}
}
m = m->NextMatch();
}
}
// This example displays the following output:
// Match1
// Group1='One'
// Capture0='One', Position=0
// Group2='car'
// Capture0='car', Position=4
// Match2
// Group1='red'
// Capture0='red', Position=8
// Group2='car'
// Capture0='car', Position=12
// Match3
// Group1='blue'
// Capture0='blue', Position=16
// Group2='car'
// Capture0='car', Position=21
using System;
using System.Text.RegularExpressions;
class Example
{
static void Main()
{
string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";
// Instantiate the regular expression object.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
Match m = r.Match(text);
int matchCount = 0;
while (m.Success)
{
Console.WriteLine("Match"+ (++matchCount));
for (int i = 1; i <= 2; i++)
{
Group g = m.Groups[i];
Console.WriteLine("Group"+i+"='" + g + "'");
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
}
}
m = m.NextMatch();
}
}
}
// This example displays the following output:
// Match1
// Group1='One'
// Capture0='One', Position=0
// Group2='car'
// Capture0='car', Position=4
// Match2
// Group1='red'
// Capture0='red', Position=8
// Group2='car'
// Capture0='car', Position=12
// Match3
// Group1='blue'
// Capture0='blue', Position=16
// Group2='car'
// Capture0='car', Position=21
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim text As String = "One car red car blue car"
Dim pattern As String = "(\w+)\s+(car)"
' Instantiate the regular expression object.
Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase)
' Match the regular expression pattern against a text string.
Dim m As Match = r.Match(text)
Dim matchcount as Integer = 0
Do While m.Success
matchCount += 1
Console.WriteLine("Match" & (matchCount))
Dim i As Integer
For i = 1 to 2
Dim g as Group = m.Groups(i)
Console.WriteLine("Group" & i & "='" & g.ToString() & "'")
Dim cc As CaptureCollection = g.Captures
Dim j As Integer
For j = 0 to cc.Count - 1
Dim c As Capture = cc(j)
Console.WriteLine("Capture" & j & "='" & c.ToString() _
& "', Position=" & c.Index)
Next
Next
m = m.NextMatch()
Loop
End Sub
End Module
' This example displays the following output:
' Match1
' Group1='One'
' Capture0='One', Position=0
' Group2='car'
' Capture0='car', Position=4
' Match2
' Group1='red'
' Capture0='red', Position=8
' Group2='car'
' Capture0='car', Position=12
' Match3
' Group1='blue'
' Capture0='blue', Position=16
' Group2='car'
' Capture0='car', Position=21
Normal ifade deseni (\w+)\s+(car)
, kendisinden önceki sözcükle birlikte "araba" sözcüğünün oluşumlarıyla eşleşir. Aşağıdaki tabloda gösterildiği gibi yorumlanır.
Desen | Description |
---|---|
(\w+) |
Bir veya daha fazla sözcük karakteri eşleştir. Bu ilk yakalama grubudur. |
\s+ |
Bir veya daha fazla boşluk karakterini eşleştirin. |
(araba) | Değişmez değer dizesi "car" ile eşleş. Bu ikinci yakalama grubudur. |
Açıklamalar
yöntemi, Match(String) bir giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
Döndürülen Match nesnenin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnenin Value özelliği normal ifade deseni ile eşleşen alt dizeyi input
içerir. Eşleşme bulunmazsa değeri olur String.Empty.
Bu yöntem, normal ifade deseni ile eşleşen içindeki input
ilk alt dizeyi döndürür. Döndürülen Match nesnenin Match.NextMatch yöntemini art arda çağırarak sonraki eşleşmeleri alabilirsiniz. Ayrıca yöntemini çağırarak tek bir yöntem çağrısındaki tüm eşleşmeleri Regex.Matches(String) alabilirsiniz.
Eşleşen RegexMatchTimeoutException işlemin yürütme süresi oluşturucu tarafından Regex.Regex(String, RegexOptions, TimeSpan) belirtilen zaman aşımı aralığını aşarsa özel durum oluşturulur. Oluşturucuyu çağırdığınızda zaman aşımı aralığı ayarlamazsanız, işlem nesnenin oluşturulduğu uygulama etki alanı Regex için oluşturulan herhangi bir zaman aşımı değerini aşarsa özel durum oluşturulur. Oluşturucu çağrısında veya uygulama etki alanının özelliklerinde Regex hiçbir zaman aşımı tanımlanmamışsa veya zaman aşımı değeri ise Regex.InfiniteMatchTimeoutözel durum oluşturmaz.
Ayrıca bkz.
Şunlara uygulanır
Match(String, Int32)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin ilk oluşumunu arar.
public:
System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int startat);
public System.Text.RegularExpressions.Match Match (string input, int startat);
member this.Match : string * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, startat As Integer) As Match
Parametreler
- input
- String
Eşleşme aranacak dize.
- startat
- Int32
Aramanın başlatıldığı sıfır tabanlı karakter konumu.
Döndürülenler
Eşleşme hakkında bilgi içeren bir nesne.
Özel durumlar
input
, null
değeridir.
startat
sıfırdan küçük veya uzunluğundan büyük.input
Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Açıklamalar
Bu API hakkında daha fazla bilgi için bkz. Regex.Match için ek API açıklamaları.
Ayrıca bkz.
Şunlara uygulanır
Match(String, String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini arar.
public:
static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.Match Match (string input, string pattern);
static member Match : string * string -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String) As Match
Parametreler
- input
- String
Eşleşme aranacak dize.
- pattern
- String
Eşleştirecek normal ifade deseni.
Döndürülenler
Eşleşme hakkında bilgi içeren bir nesne.
Özel durumlar
Normal ifade ayrıştırma hatası oluştu.
input
veya pattern
şeklindedir null
.
Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Örnekler
Aşağıdaki örnek, en az bir z
karakter içeren ilk sözcüğü bulmak için yöntemini çağırır Match(String, String) ve ardından ek eşleşmeleri bulmak için yöntemini çağırırMatch.NextMatch.
using System;
using System.Text.RegularExpressions;
namespace Examples
{
public class Example
{
public static void Main()
{
string input = "ablaze beagle choral dozen elementary fanatic " +
"glaze hunger inept jazz kitchen lemon minus " +
"night optical pizza quiz restoration stamina " +
"train unrest vertical whiz xray yellow zealous";
string pattern = @"\b\w*z+\w*\b";
Match m = Regex.Match(input, pattern);
while (m.Success)
{
Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index);
m = m.NextMatch();
}
}
}
}
// The example displays the following output:
// 'ablaze' found at position 0
// 'dozen' found at position 21
// 'glaze' found at position 46
// 'jazz' found at position 65
// 'pizza' found at position 104
// 'quiz' found at position 110
// 'whiz' found at position 157
// 'zealous' found at position 174
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim input As String = "ablaze beagle choral dozen elementary fanatic " +
"glaze hunger inept jazz kitchen lemon minus " +
"night optical pizza quiz restoration stamina " +
"train unrest vertical whiz xray yellow zealous"
Dim pattern As String = "\b\w*z+\w*\b"
Dim m As Match = Regex.Match(input, pattern)
Do While m.Success
Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index)
m = m.NextMatch()
Loop
End Sub
End Module
' The example displays the following output:
'ablaze' found at position 0
'dozen' found at position 21
'glaze' found at position 46
'jazz' found at position 65
'pizza' found at position 104
'quiz' found at position 110
'whiz' found at position 157
'zealous' found at position 174
Normal ifade deseni \b\w*z+\w*\b
aşağıdaki tabloda gösterildiği gibi yorumlanır.
Desen | Description |
---|---|
\b |
Bir sözcük sınırında eşleşmeye başla. |
\w* |
Sıfır, bir veya daha fazla sözcük karakteri eşleştirin. |
z+ |
Karakterin bir veya daha fazla örneğini eşleştirin z . |
\w* |
Sıfır, bir veya daha fazla sözcük karakteriyle eşleş. |
\b |
Eşlemeyi bir sözcük sınırında sonlandır. |
Açıklamalar
yöntemi, Match(String, String) bir giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
Statik Match(String, String) yöntem, belirtilen normal ifade desenine sahip bir Regex nesne oluşturmak ve örnek Match(String) yöntemini çağırmakla eşdeğerdir. Bu durumda, normal ifade altyapısı normal ifade desenini önbelleğe alır.
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.
Döndürülen Match nesnenin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnenin Value özelliği normal ifade deseni ile eşleşen alt dizeyi input
içerir. Eşleşme bulunmazsa değeri olur String.Empty.
Bu yöntem, normal ifade deseni ile eşleşen içindeki ilk alt dizeyi input
döndürür. Döndürülen Match nesnenin Match.NextMatch yöntemini art arda çağırarak sonraki eşleşmeleri alabilirsiniz. Ayrıca yöntemini çağırarak tek bir yöntem çağrısındaki tüm eşleşmeleri Regex.Matches(String, String) de alabilirsiniz.
Eşleşen RegexMatchTimeoutException işlemin yürütme süresi yöntemin çağrıldığı uygulama etki alanı için belirtilen zaman aşımı aralığını aşarsa özel durum oluşturulur. Uygulama etki alanının özelliklerinde zaman aşımı tanımlanmamışsa veya zaman aşımı değeri ise Regex.InfiniteMatchTimeoutözel durum oluşturmaz.
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. Desen eşleşmesini almak için önerilen statik yöntem, zaman aşımı aralığını ayarlamanıza olanak tanıyan yöntemidir Match(String, String).
Ayrıca bkz.
Şunlara uygulanır
Match(String, Int32, Int32)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Belirtilen başlangıç konumundan başlayarak ve yalnızca belirtilen sayıda karakterde arama yaparak normal ifadenin ilk geçtiği giriş dizesini arar.
public:
System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int beginning, int length);
public System.Text.RegularExpressions.Match Match (string input, int beginning, int length);
member this.Match : string * int * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, beginning As Integer, length As Integer) As Match
Parametreler
- input
- String
Eşleşme aranacak dize.
- beginning
- Int32
Aranacak en soldaki konumu tanımlayan giriş dizesindeki sıfır tabanlı karakter konumu.
- length
- Int32
Araya eklenecek alt dizedeki karakter sayısı.
Döndürülenler
Eşleşme hakkında bilgi içeren bir nesne.
Özel durumlar
input
, null
değeridir.
beginning
sıfırdan küçük veya uzunluğundan büyük.input
-veya-
length
sıfırdan küçük veya uzunluğundan büyük.input
-veya-
beginning
+
length
-1
, aralığının input
dışında bir konum tanımlar.
Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Açıklamalar
yöntemi, Match(String, Int32, Int32) bir giriş dizesinin bir bölümündeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
Yönteminin arama yaptığı Match(String, Int32, 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.
yöntemi, Match(String, Int32, Int32) normal ifade deseni için ve length
parametreleri tarafından beginning
tanımlanan bölümünü input
arar. beginning
her zaman aramaya eklenecek en soldaki karakterin dizinini tanımlar ve length
aranacak en fazla karakter sayısını tanımlar. Birlikte arama aralığını tanımlarlar. Davranış, herhangi bir eşleşmenin dizininin başlangıcına göre sayılmış olması dışında, tam olarak öğesinin input
etkili bir şekilde input.Substring(beginning, length)
olduğu gibidirinput
. Başka bir deyişle, desenin başındaki veya sonundaki tüm tutturucular veya sıfır genişlikli onaylar, bu aralığın dışında yokmuş input
gibi davranır. Örneğin, , \G
ve yer işaretleri ^
ve $
konumundan beginning
memnun kalır ve \z
konumundan beginning + length - 1
memnun \A
kalır.
Arama soldan sağa (varsayılan) devam ederse, normal ifade altyapısı dizindeki karakterden dizinindeki beginning
karaktere beginning + length - 1
kadar arar. Normal ifade altyapısı, aramanın sağdan sola ilerlemesi için seçeneği kullanılarak RegexOptions.RightToLeft örneklendiyse, normal ifade altyapısı dizindeki karakterden dizinindeki beginning + length - 1
karaktere beginning
kadar arar.
Bu yöntem, bu aralık içinde bulduğu ilk eşleşmeyi döndürür. Döndürülen Match nesnenin Match.NextMatch yöntemini art arda çağırarak sonraki eşleşmeleri alabilirsiniz.
Döndürülen Match nesnenin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnenin Value özelliği normal ifade deseni ile eşleşen alt dizeyi input
içerir. Eşleşme bulunmazsa değeri olur String.Empty.
Eşleşen RegexMatchTimeoutException işlemin yürütme süresi oluşturucu tarafından Regex.Regex(String, RegexOptions, TimeSpan) belirtilen zaman aşımı aralığını aşarsa özel durum oluşturulur. Oluşturucuyu çağırdığınızda bir zaman aşımı değeri ayarlamazsanız, işlem nesnenin oluşturulduğu uygulama etki alanı Regex için oluşturulan zaman aşımı değerini aşarsa özel durum oluşturulur. Oluşturucu çağrısında Regex veya uygulama etki alanının özelliklerinde zaman aşımı tanımlanmamışsa ya da zaman aşımı değeri ise Regex.InfiniteMatchTimeoutözel durum oluşturmaz.
Ayrıca bkz.
Şunlara uygulanır
Match(String, String, RegexOptions, TimeSpan)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
Belirtilen eşleştirme seçeneklerini ve zaman aşımı aralığını kullanarak belirtilen normal ifadenin ilk geçtiği giriş dizesini arar.
public:
static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Match
Parametreler
- input
- String
Eşleşme aranacak dize.
- pattern
- String
Eşleştirecek normal ifade deseni.
- options
- RegexOptions
Eşleştirme seçenekleri sağlayan 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
Eşleşme hakkında bilgi içeren bir nesne.
Ö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.
Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Açıklamalar
yöntemi, Match(String, String, RegexOptions, TimeSpan) bir giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.
Statik Match(String, String, RegexOptions, TimeSpan) yöntem, oluşturucu ile bir Regex nesne oluşturmak ve örnek Match(String) yöntemini çağırmakla Regex(String, RegexOptions, TimeSpan) 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.
Döndürülen Match nesnenin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnenin Value özelliği normal ifade deseni ile eşleşen alt dizeyi input
içerir. Eşleşme bulunmazsa değeri olur String.Empty.
Bu yöntem, içinde bulunan input
ve normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Döndürülen Match nesnenin NextMatch yöntemini art arda çağırarak sonraki eşleşmeleri alabilirsiniz. Ayrıca yöntemini çağırarak tek bir yöntem çağrısındaki tüm eşleşmeleri Regex.Matches(String, String, RegexOptions) de alabilirsiniz.
parametresi, matchTimeout
desen eşleştirme yönteminin zaman aşımına uğramadan önce eşleşmeyi ne kadar süreyle bulmaya çalışılması gerektiğini belirtir. Zaman aşımı aralığı ayarlamak, aşırı geri izlemeyi kullanan normal ifadelerin, yakın eşleşmeler içeren girişi işlerken yanıt vermeyi durduracak şekilde görünmesini önler. Daha fazla bilgi için bkz. Normal İfadeler ve Geri İzlemeiçin En İyi Yöntemler. Bu zaman aralığında eşleşme bulunmazsa, yöntem bir RegexMatchTimeoutException özel durum oluşturur. matchTimeout
yöntemin yürütüldiği uygulama etki alanı için tanımlanan varsayılan zaman aşımı değerlerini geçersiz kılar.
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şullarda devre dışı bırakmanız gerekir:
Normal bir ifade tarafından işlenen giriş bilinen ve güvenilen 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şmeleri 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şme işlenirken aşırı geri izlenmeye neden olduğu bilinen bir dil öğesi içermediğinde.
Ayrıca bkz.
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin