Regex.Match Metoda

Definicja

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)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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-1Identyfikuje 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)

Source:
Regex.Match.cs
Source:
Regex.Match.cs
Source:
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