Regex.Match Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wyszukuje ciąg wejściowy dla podciągów pasujących do wzorca wyrażenia regularnego i zwraca pierwsze wystąpienie jako pojedynczy Match obiekt.
Przeciążenia
Match(String, String, RegexOptions) |
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia określonego wyrażenia regularnego przy użyciu określonych opcji dopasowania. |
Match(String) |
Wyszukuje określony ciąg wejściowy dla pierwszego wystąpienia wyrażenia regularnego określonego w konstruktorze Regex . |
Match(String, Int32) |
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia wyrażenia regularnego, zaczynając od określonej pozycji początkowej w ciągu. |
Match(String, String) |
Wyszukuje określony ciąg wejściowy dla pierwszego wystąpienia określonego wyrażenia regularnego. |
Match(String, Int32, Int32) |
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia wyrażenia regularnego, zaczynając od określonej pozycji początkowej i wyszukując tylko określoną liczbę znaków. |
Match(String, String, RegexOptions, TimeSpan) |
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia określonego wyrażenia regularnego przy użyciu określonych opcji dopasowania i interwału limitu czasu. |
Match(String, String, RegexOptions)
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia określonego wyrażenia regularnego przy użyciu określonych opcji dopasowania.
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
Parametry
- input
- String
Ciąg do wyszukania dopasowania.
- pattern
- String
Wzorzec wyrażenia regularnego do dopasowania.
- options
- RegexOptions
Bitowa kombinacja wartości wyliczenia, które zapewniają opcje dopasowania.
Zwraca
Obiekt zawierający informacje o dopasowaniu.
Wyjątki
Wystąpił błąd analizowania wyrażeń regularnych.
input
lub pattern
ma wartość null
.
options
nie jest prawidłową kombinacją bitów RegexOptions wartości.
Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.
Przykłady
W poniższym przykładzie zdefiniowano wyrażenie regularne, które pasuje do wyrazów rozpoczynających się literą "a". Używa RegexOptions.IgnoreCase opcji , aby upewnić się, że wyrażenie regularne lokalizuje wyrazy rozpoczynające się zarówno wielkimi literami "a", jak i małymi literami "a".
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.
Wzorzec \ba\w*\b
wyrażenia regularnego jest interpretowany, jak pokazano w poniższej tabeli.
Wzorce | Opis |
---|---|
\b |
Rozpoczyna dopasowanie na granicy wyrazu. |
a |
Dopasuj znak "a". |
\w* |
Dopasuj zero, co najmniej jeden znak słowa. |
\b |
Kończy dopasowanie na granicy wyrazu. |
Uwagi
Metoda Match(String, String, RegexOptions) zwraca pierwszy podciąg zgodny ze wzorcem wyrażenia regularnego w ciągu wejściowym. Aby uzyskać informacje o elementach języka używanych do tworzenia wzorca wyrażeń regularnych, zobacz Język wyrażeń regularnych — krótki przewodnik.
Metoda statyczna Match(String, String, RegexOptions) jest równoważna konstruowaniu Regex obiektu za pomocą konstruktora Regex(String, RegexOptions) i wywoływaniu metody wystąpienia Match(String) .
Parametr pattern
składa się z elementów języka wyrażeń regularnych, które symbolicznie opisują ciąg do dopasowania. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Regular Expressions and Regular Expression Language - Quick Reference (Wyrażenia regularne platformy .NET i język wyrażeń regularnych — krótki przewodnik).
Można określić, czy wzorzec wyrażenia regularnego został znaleziony w ciągu wejściowym, sprawdzając wartość właściwości zwróconego MatchSuccess obiektu. Jeśli zostanie znalezione dopasowanie, właściwość zwróconego MatchValue obiektu zawiera podciąg, który jest zgodny ze input
wzorcem wyrażenia regularnego. Jeśli dopasowanie nie zostanie znalezione, jego wartość to String.Empty.
Ta metoda zwraca pierwszy podciąg znaleziony w input
pliku zgodny ze wzorcem wyrażenia regularnego. Kolejne dopasowania można pobrać, wielokrotnie wywołując metodę zwracanego Match obiektu NextMatch . Wszystkie dopasowania można również pobrać w jednym wywołaniu metody, wywołując metodę Regex.Matches(String, String, RegexOptions) .
Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony dla domeny aplikacji, w której jest wywoływana metoda. Jeśli w właściwościach domeny aplikacji nie zdefiniowano limitu czasu lub jeśli wartość limitu czasu wynosi Regex.InfiniteMatchTimeout, nie zostanie zgłoszony wyjątek.
Uwagi dotyczące wywoływania
Ta metoda powoduje przekroczenie limitu czasu po interwale równym domyślnej wartości limitu czasu domeny aplikacji, w której jest wywoływana. Jeśli wartość limitu czasu nie została zdefiniowana dla domeny aplikacji, zostanie użyta wartość InfiniteMatchTimeout, która uniemożliwia przekroczenie limitu czasu metody. Zalecaną metodą statyczną pobierania dopasowania wzorca jest Match(String, String), która umożliwia ustawienie interwału limitu czasu.
Zobacz też
Dotyczy
Match(String)
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
Wyszukuje określony ciąg wejściowy dla pierwszego wystąpienia wyrażenia regularnego określonego w konstruktorze Regex .
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
Parametry
- input
- String
Ciąg do wyszukania dopasowania.
Zwraca
Obiekt zawierający informacje o dopasowaniu.
Wyjątki
input
to null
.
Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.
Przykłady
Poniższy przykład znajduje dopasowania wzorca wyrażenia regularnego w ciągu, a następnie wyświetla listę pasujących grup, przechwytywania i przechwytywania pozycji.
#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
Wzorzec (\w+)\s+(car)
wyrażenia regularnego pasuje do wystąpień słowa "car" wraz ze słowem poprzedzającym go. Jest on interpretowany, jak pokazano w poniższej tabeli.
Wzorce | Opis |
---|---|
(\w+) |
Dopasowuje co najmniej jeden znak słowa. Jest to pierwsza grupa przechwytywania. |
\s+ |
Dopasuj co najmniej jeden znak odstępu. |
(samochód) | Dopasuj ciąg literału "car". Jest to druga grupa przechwytywania. |
Uwagi
Metoda Match(String) zwraca pierwszy podciąg zgodny ze wzorcem wyrażenia regularnego w ciągu wejściowym. Aby uzyskać informacje o elementach języka używanych do tworzenia wzorca wyrażeń regularnych, zobacz Język wyrażeń regularnych — krótki przewodnik.
Można określić, czy wzorzec wyrażenia regularnego został znaleziony w ciągu wejściowym, sprawdzając wartość właściwości zwróconego MatchSuccess obiektu. Jeśli zostanie znalezione dopasowanie, właściwość zwróconego MatchValue obiektu zawiera podciąg, który jest zgodny ze input
wzorcem wyrażenia regularnego. Jeśli dopasowanie nie zostanie znalezione, jego wartość to String.Empty.
Ta metoda zwraca pierwszy podciąg, input
który jest zgodny ze wzorcem wyrażenia regularnego. Kolejne dopasowania można pobrać, wielokrotnie wywołując metodę zwracanego Match obiektu Match.NextMatch . Wszystkie dopasowania można również pobrać w jednym wywołaniu metody, wywołując metodę Regex.Matches(String) .
Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony przez konstruktora Regex.Regex(String, RegexOptions, TimeSpan) . Jeśli nie ustawisz interwału limitu czasu podczas wywoływania konstruktora, wyjątek jest zgłaszany, jeśli operacja przekroczy wartość limitu czasu ustanowioną dla domeny aplikacji, w której Regex jest tworzony obiekt. Jeśli w wywołaniu konstruktora lub we właściwościach domeny aplikacji nie zdefiniowano Regex limitu czasu lub jeśli wartość limitu czasu wynosi Regex.InfiniteMatchTimeout, nie jest zgłaszany wyjątek.
Zobacz też
Dotyczy
Match(String, Int32)
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia wyrażenia regularnego, zaczynając od określonej pozycji początkowej w ciągu.
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
Parametry
- input
- String
Ciąg do wyszukania dopasowania.
- startat
- Int32
Położenie znaku zerowego, w którym należy rozpocząć wyszukiwanie.
Zwraca
Obiekt zawierający informacje o dopasowaniu.
Wyjątki
input
to null
.
startat
jest mniejsza niż zero lub większa niż długość input
.
Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.
Uwagi
Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz dodatkowe uwagi dotyczące interfejsu API regex.Match.
Zobacz też
Dotyczy
Match(String, String)
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
Wyszukuje określony ciąg wejściowy dla pierwszego wystąpienia określonego wyrażenia regularnego.
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
Parametry
- input
- String
Ciąg do wyszukania dopasowania.
- pattern
- String
Wzorzec wyrażenia regularnego do dopasowania.
Zwraca
Obiekt zawierający informacje o dopasowaniu.
Wyjątki
Wystąpił błąd analizowania wyrażeń regularnych.
input
lub pattern
ma wartość null
.
Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.
Przykłady
Poniższy przykład wywołuje metodę , Match(String, String) aby znaleźć pierwsze słowo zawierające co najmniej jeden z
znak, a następnie wywołuje metodę Match.NextMatch w celu znalezienia dodatkowych dopasowań.
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
Wzorzec \b\w*z+\w*\b
wyrażenia regularnego jest interpretowany, jak pokazano w poniższej tabeli.
Wzorce | Opis |
---|---|
\b |
Rozpoczyna dopasowanie na granicy wyrazu. |
\w* |
Dopasuj zero, co najmniej jeden znak słowa. |
z+ |
Dopasuj z co najmniej jedno wystąpienie znaku. |
\w* |
Dopasuj zero, co najmniej jeden znak słowa. |
\b |
Kończy dopasowanie na granicy wyrazu. |
Uwagi
Metoda Match(String, String) zwraca pierwszy podciąg zgodny ze wzorcem wyrażenia regularnego w ciągu wejściowym. Aby uzyskać informacje o elementach języka używanych do tworzenia wzorca wyrażeń regularnych, zobacz Język wyrażeń regularnych — krótki przewodnik.
Metoda statyczna Match(String, String) jest równoważna konstruowaniu Regex obiektu przy użyciu określonego wzorca wyrażenia regularnego i wywoływania metody wystąpienia Match(String) . W tym przypadku aparat wyrażeń regularnych buforuje wzorzec wyrażenia regularnego.
Parametr pattern
składa się z elementów języka wyrażeń regularnych, które symbolicznie opisują ciąg do dopasowania. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Regular Expressions and Regular Expression Language - Quick Reference (Wyrażenia regularne platformy .NET i język wyrażeń regularnych — krótki przewodnik).
Można określić, czy wzorzec wyrażenia regularnego został znaleziony w ciągu wejściowym, sprawdzając wartość właściwości zwróconego MatchSuccess obiektu. Jeśli zostanie znalezione dopasowanie, właściwość zwróconego MatchValue obiektu zawiera podciąg, który jest zgodny ze input
wzorcem wyrażenia regularnego. Jeśli dopasowanie nie zostanie znalezione, jego wartość to String.Empty.
Ta metoda zwraca pierwszy podciąg, input
który jest zgodny ze wzorcem wyrażenia regularnego. Kolejne dopasowania można pobrać, wielokrotnie wywołując metodę zwracanego Match obiektu Match.NextMatch . Wszystkie dopasowania można również pobrać w jednym wywołaniu metody, wywołując metodę Regex.Matches(String, String) .
Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony dla domeny aplikacji, w której jest wywoływana metoda. Jeśli w właściwościach domeny aplikacji nie zdefiniowano limitu czasu lub jeśli wartość limitu czasu wynosi Regex.InfiniteMatchTimeout, nie zostanie zgłoszony wyjątek.
Uwagi dotyczące wywoływania
Ta metoda powoduje przekroczenie limitu czasu po interwale równym domyślnej wartości limitu czasu domeny aplikacji, w której jest wywoływana. Jeśli wartość limitu czasu nie została zdefiniowana dla domeny aplikacji, zostanie użyta wartość InfiniteMatchTimeout, która uniemożliwia przekroczenie limitu czasu metody. Zalecaną metodą statyczną pobierania dopasowania wzorca jest Match(String, String), która umożliwia ustawienie interwału limitu czasu.
Zobacz też
Dotyczy
Match(String, Int32, Int32)
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia wyrażenia regularnego, zaczynając od określonej pozycji początkowej i wyszukując tylko określoną liczbę znaków.
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
Parametry
- input
- String
Ciąg do wyszukania dopasowania.
- beginning
- Int32
Pozycja znaku zerowego w ciągu wejściowym definiującym najbardziej lewą pozycję do wyszukania.
- length
- Int32
Liczba znaków w podciąg do uwzględnienia w wyszukiwaniu.
Zwraca
Obiekt zawierający informacje o dopasowaniu.
Wyjątki
input
to null
.
beginning
jest mniejsza niż zero lub większa niż długość input
.
-lub-
length
jest mniejsza niż zero lub większa niż długość input
.
-lub-
beginning
+
length
-1
Identyfikuje pozycję, która znajduje się poza zakresem .input
Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.
Uwagi
Metoda Match(String, Int32, Int32) zwraca pierwszy podciąg, który pasuje do wzorca wyrażenia regularnego w części ciągu wejściowego. Aby uzyskać informacje o elementach języka używanych do tworzenia wzorca wyrażeń regularnych, zobacz Język wyrażeń regularnych — krótki przewodnik.
Wzorzec wyrażenia regularnego, dla którego Match(String, Int32, Int32) metoda wyszukuje, jest definiowany przez wywołanie jednego z Regex konstruktorów klasy. Aby uzyskać więcej informacji na temat elementów, które mogą tworzyć wzorzec wyrażeń regularnych, zobacz Język wyrażeń regularnych — krótki przewodnik.
Metoda Match(String, Int32, Int32) przeszukuje część elementu zdefiniowaną input
przez beginning
parametry i length
dla wzorca wyrażenia regularnego.
beginning
Zawsze definiuje indeks najbardziej lewego znaku do uwzględnienia w wyszukiwaniu i length
definiuje maksymalną liczbę znaków do wyszukania. Razem definiują zakres wyszukiwania. Zachowanie jest dokładnie tak, jakby input
element był skutecznie input.Substring(beginning, length)
, z tą różnicą, że indeks dowolnego dopasowania jest liczone względem początku input
. Oznacza to, że wszystkie kotwice lub aseracje o zerowej szerokości na początku lub na końcu wzorca zachowują się tak, jakby nie było poza input
tym zakresem. Na przykład kotwice ^
, \G
, i \A
będą spełnione w beginning
i $
i \z
będą spełnione pod adresem beginning + length - 1
.
Jeśli wyszukiwanie będzie kontynuowane od lewej do prawej (wartość domyślna), aparat wyrażeń regularnych wyszukuje znak w indeksie beginning
do znaku w indeksie beginning + length - 1
. Jeśli aparat wyrażeń regularnych został utworzone przy użyciu RegexOptions.RightToLeft opcji , aby wyszukiwanie przebiegało od prawej do lewej, aparat wyrażeń regularnych wyszukuje znak w indeksie beginning + length - 1
do znaku w indeksie beginning
.
Ta metoda zwraca pierwsze dopasowanie znalezione w tym zakresie. Kolejne dopasowania można pobrać, wielokrotnie wywołując metodę zwracanego Match obiektu Match.NextMatch .
Można określić, czy wzorzec wyrażenia regularnego został znaleziony w ciągu wejściowym, sprawdzając wartość właściwości zwróconego MatchSuccess obiektu. Jeśli zostanie znalezione dopasowanie, właściwość zwróconego MatchValue obiektu zawiera podciąg, który jest zgodny ze input
wzorcem wyrażenia regularnego. Jeśli dopasowanie nie zostanie znalezione, jego wartość to String.Empty.
Wyjątek RegexMatchTimeoutException jest zgłaszany, jeśli czas wykonywania pasującej operacji przekracza interwał limitu czasu określony przez konstruktora Regex.Regex(String, RegexOptions, TimeSpan) . Jeśli nie ustawisz wartości limitu czasu podczas wywoływania konstruktora, wyjątek jest zgłaszany, jeśli operacja przekroczy wartość limitu czasu ustanowioną dla domeny aplikacji, w której Regex jest tworzony obiekt. Jeśli w wywołaniu konstruktora lub we właściwościach domeny aplikacji nie zdefiniowano Regex limitu czasu lub jeśli wartość limitu czasu wynosi Regex.InfiniteMatchTimeout, nie jest zgłaszany wyjątek.
Zobacz też
Dotyczy
Match(String, String, RegexOptions, TimeSpan)
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
- Źródło:
- Regex.Match.cs
Wyszukuje ciąg wejściowy dla pierwszego wystąpienia określonego wyrażenia regularnego przy użyciu określonych opcji dopasowania i interwału limitu czasu.
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
Parametry
- input
- String
Ciąg do wyszukania dopasowania.
- pattern
- String
Wzorzec wyrażenia regularnego do dopasowania.
- options
- RegexOptions
Bitowa kombinacja wartości wyliczenia, które zapewniają opcje dopasowania.
- matchTimeout
- TimeSpan
Interwał limitu czasu lub InfiniteMatchTimeout wskazujący, że metoda nie powinna upłynął limit czasu.
Zwraca
Obiekt zawierający informacje o dopasowaniu.
Wyjątki
Wystąpił błąd analizowania wyrażeń regularnych.
input
lub pattern
ma wartość null
.
options
nie jest prawidłową kombinacją bitów RegexOptions wartości.
-lub-
matchTimeout
jest ujemna, zero lub większa niż około 24 dni.
Wystąpił limit czasu. Aby uzyskać więcej informacji na temat limitów czasu, zobacz sekcję Uwagi.
Uwagi
Metoda Match(String, String, RegexOptions, TimeSpan) zwraca pierwszy podciąg zgodny ze wzorcem wyrażenia regularnego w ciągu wejściowym. Aby uzyskać informacje o elementach języka używanych do tworzenia wzorca wyrażeń regularnych, zobacz Język wyrażeń regularnych — krótki przewodnik.
Metoda statyczna Match(String, String, RegexOptions, TimeSpan) jest równoważna konstruowaniu Regex obiektu za pomocą konstruktora Regex(String, RegexOptions, TimeSpan) i wywoływaniu metody wystąpienia Match(String) .
Parametr pattern
składa się z elementów języka wyrażeń regularnych, które symbolicznie opisują ciąg do dopasowania. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Regular Expressions and Regular Expression Language - Quick Reference (Wyrażenia regularne platformy .NET i język wyrażeń regularnych — krótki przewodnik).
Można określić, czy wzorzec wyrażenia regularnego został znaleziony w ciągu wejściowym, sprawdzając wartość właściwości zwróconego MatchSuccess obiektu. Jeśli zostanie znalezione dopasowanie, właściwość zwróconego MatchValue obiektu zawiera podciąg, który jest zgodny ze input
wzorcem wyrażenia regularnego. Jeśli dopasowanie nie zostanie znalezione, jego wartość to String.Empty.
Ta metoda zwraca pierwszy podciąg znaleziony w input
pliku zgodny ze wzorcem wyrażenia regularnego. Kolejne dopasowania można pobrać, wielokrotnie wywołując metodę zwracanego Match obiektu NextMatch . Wszystkie dopasowania można również pobrać w jednym wywołaniu metody, wywołując metodę Regex.Matches(String, String, RegexOptions) .
Parametr matchTimeout
określa, jak długo metoda dopasowania wzorca powinna próbować znaleźć dopasowanie przed upływem limitu czasu. Ustawienie interwału przekroczenia limitu czasu uniemożliwia wyrażenia regularne, które polegają na nadmiernym wycofywaniu, aby przestać odpowiadać podczas przetwarzania danych wejściowych, które zawierają niemal dopasowania. Aby uzyskać więcej informacji, zobacz Best Practices for Regular Expressions and Backtracking (Najlepsze rozwiązania dotyczące wyrażeń regularnych i wycofywania). Jeśli w tym interwale czasu nie znaleziono dopasowania, metoda zgłasza RegexMatchTimeoutException wyjątek.
matchTimeout
zastępuje dowolną domyślną wartość limitu czasu zdefiniowaną dla domeny aplikacji, w której jest wykonywana metoda.
Uwagi dotyczące wywoływania
Zalecamy ustawienie parametru matchTimeout
na odpowiednią wartość, na przykład dwie sekundy. Jeśli wyłączysz limity czasu, określając InfiniteMatchTimeout, aparat wyrażeń regularnych zapewnia nieco lepszą wydajność. Należy jednak wyłączyć limity czasu tylko w następujących warunkach:
Gdy dane wejściowe przetwarzane przez wyrażenie regularne pochodzą ze znanego i zaufanego źródła lub składa się z tekstu statycznego. Wyklucza to tekst, który został dynamicznie wprowadzany przez użytkowników.
Gdy wzorzec wyrażenia regularnego został dokładnie przetestowany w celu zapewnienia, że efektywnie obsługuje dopasowania, niezgodne i bliskie dopasowania.
Gdy wzorzec wyrażenia regularnego nie zawiera żadnych elementów języka, które są znane z nadmiernego wycofywania podczas przetwarzania zbliżonego dopasowania.
Zobacz też
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla