Regex.Match Método

Definição

Pesquisa uma cadeia de caracteres de entrada para uma subcadeia de caracteres que corresponde a um padrão de expressão regular e retorna a primeira ocorrência como um único Match objeto.

Sobrecargas

Nome Description
Match(String)

Pesquisa a cadeia de caracteres de entrada especificada para a primeira ocorrência da expressão regular especificada no Regex construtor.

Match(String, Int32)

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência de uma expressão regular, começando na posição inicial especificada na cadeia de caracteres.

Match(String, String)

Pesquisa a cadeia de caracteres de entrada especificada para a primeira ocorrência da expressão regular especificada.

Match(String, Int32, Int32)

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência de uma expressão regular, começando na posição inicial especificada e pesquisando apenas o número especificado de caracteres.

Match(String, String, RegexOptions)

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência da expressão regular especificada, usando as opções de correspondência especificadas.

Match(String, String, RegexOptions, TimeSpan)

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência da expressão regular especificada, usando as opções de correspondência especificadas e o intervalo de tempo limite.

Match(String)

Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs

Pesquisa a cadeia de caracteres de entrada especificada para a primeira ocorrência da expressão regular especificada no Regex construtor.

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

Parâmetros

input
String

A cadeia de caracteres a ser pesquisada por uma correspondência.

Retornos

Um objeto que contém informações sobre a correspondência.

Exceções

input é null.

Ocorreu um tempo limite.

Comentários

O Match(String) método retorna a primeira subcadeia de caracteres que corresponde a um padrão de expressão regular em uma cadeia de caracteres de entrada.

Você pode determinar se o padrão de expressão regular foi encontrado na cadeia de caracteres de entrada verificando a propriedade do Match objeto retornadoSuccess. Se uma correspondência for encontrada, a propriedade do Match objeto retornado Value conterá a subcadeia de caracteres correspondente. Se nenhuma correspondência for encontrada, seu valor será Empty.

Esse método retorna a primeira correspondência. Você pode recuperar correspondências subsequentes chamando repetidamente o método Match do objeto retornado NextMatch(). Você também pode recuperar todas as correspondências em uma única chamada de método chamando Matches(String).

A RegexMatchTimeoutException exceção será gerada se o tempo de execução da operação de correspondência exceder o intervalo de tempo limite especificado pelo Regex(String, RegexOptions, TimeSpan) construtor. Se você não definir um intervalo de tempo limite ao chamar o construtor, a exceção será gerada se a operação exceder qualquer valor de tempo limite estabelecido para o domínio do aplicativo no qual o Regex objeto é criado. Se nenhum tempo limite for definido na chamada do Regex construtor ou nas propriedades do domínio do aplicativo ou se o valor de tempo limite for InfiniteMatchTimeout, nenhuma exceção será gerada.

Confira também

Aplica-se a

Match(String, Int32)

Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência de uma expressão regular, começando na posição inicial especificada na cadeia de caracteres.

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

Parâmetros

input
String

A cadeia de caracteres a ser pesquisada por uma correspondência.

startat
Int32

A posição do caractere baseado em zero na qual iniciar a pesquisa.

Retornos

Um objeto que contém informações sobre a correspondência.

Exceções

input é null.

startat é menor que zero ou maior que o comprimento de input.

Ocorreu um tempo limite.

Comentários

O Match(String, Int32) método retorna a primeira subcadeia de caracteres que corresponde a um padrão de expressão regular, começando em ou após a posição do startat caractere, em uma cadeia de caracteres de entrada. O padrão de expressão regular pelo qual o método Match(String, Int32) pesquisa é definido pela chamada para um dos construtores da classe Regex. Para obter informações sobre os elementos de linguagem usados para criar um padrão de expressão regular, consulte Linguagem de Expressão Regular – Referência Rápida.

O parâmetro startat

Use o startat parâmetro para especificar a posição do caractere na qual a pesquisa é iniciada. Em uma pesquisa da esquerda para a direita, todas as correspondências que começam antes startat na cadeia de caracteres são ignoradas. Para começar na posição padrão, use a Match(String) sobrecarga (ou passe 0 para uma pesquisa da esquerda para a direita e input.Length para uma pesquisa da direita para a esquerda). Apesar de iniciar a pesquisa em startat, o índice de qualquer correspondência retornada é relativo ao início da cadeia de caracteres.

Embora o mecanismo de expressão regular não retorne nenhuma correspondência começando antes startat, ele não ignora a cadeia de caracteres antes startat. Isso significa que afirmações como âncoras ou asserções de retrocesso ainda se aplicam à entrada como um todo. Por exemplo, o código a seguir inclui um padrão com uma asserção de lookbehind que é satisfeita, mesmo ocorrendo antes do índice startat do valor 5 na string de entrada.

string input = "Zip code: 98052";
var regex = new Regex(@"(?<=Zip code: )\d{5}");
Match match = regex.Match(input, 5);
if (match.Success)
{
    Console.WriteLine($"Match found: {match.Value}");
}

// This code prints the following output:
//
// Match found: 98052

Tip

  • Se um padrão começar com a ^ âncora, startat for maior que 0 e a expressão regular não estiver sendo usada RegexOptions.Multiline, nenhuma correspondência será encontrada, pois elas serão restritas ^ para iniciar no índice 0.
  • A âncora \G é satisfeita em startat. Por isso, caso você queira limitar uma correspondência para que comece exatamente em uma posição de caractere específica na string, ancore a expressão regular com um \G à esquerda para um padrão da esquerda para a direita. Isso restringe a correspondência, portanto, ela deve começar exatamente em startat (ou, quando várias correspondências são desejadas, para que as correspondências sejam contíguas).

Pesquisas da direita para a esquerda

Uma pesquisa da direita para a esquerda, ou seja, quando o padrão de expressão regular é construído com a opção RegexOptions.RightToLeft , comporta-se das seguintes maneiras:

  • O escaneamento se move na direção oposta e o padrão é correspondido de trás (direita) para a frente (esquerda).
  • A posição inicial padrão é a extremidade direita da cadeia de caracteres de entrada.
  • Se startat for especificado, a verificação da direita para a esquerda começará no caractere em startat - 1 (não startat).
  • A âncora de \G, quando especificada no final direito de um padrão, restringe a primeira correspondência para terminar exatamente em startat - 1.

Para obter mais informações sobre pesquisas da direita para a esquerda, consulte o modo da direita para a esquerda.

Determinar se uma correspondência foi encontrada

Você pode determinar se o padrão de expressão regular foi encontrado na cadeia de caracteres de entrada verificando o valor da propriedade Match do objeto Success retornado. Se uma correspondência for encontrada, a propriedade Match do objeto retornado Value contém a subcadeia de caracteres de input que corresponde ao padrão de expressão regular. Se nenhuma correspondência for encontrada, seu valor será String.Empty.

Primeiras ou múltiplas correspondências

Esse método retorna a primeira subcadeia de caracteres encontrada pela verificação input começando na startat posição (ou, para pesquisas da direita para a esquerda, em startat - 1) que corresponde ao padrão de expressão regular. Você pode recuperar correspondências subsequentes chamando repetidamente o método Match do objeto retornado Match.NextMatch. Você também pode recuperar todas as correspondências em uma única chamada ao método Regex.Matches(String, Int32).

Exceções de tempo limite

A RegexMatchTimeoutException exceção será gerada se o tempo de execução da operação de correspondência exceder o intervalo de tempo limite especificado pelo Regex.Regex(String, RegexOptions, TimeSpan) construtor. Se você não definir um intervalo de tempo limite ao chamar o construtor, a exceção será gerada se a operação exceder qualquer valor de tempo limite estabelecido para o domínio do aplicativo no qual o Regex objeto é criado. Se nenhum tempo limite for definido na chamada do Regex construtor ou nas propriedades do domínio do aplicativo ou se o valor de tempo limite for Regex.InfiniteMatchTimeout, nenhuma exceção será gerada.

Confira também

Aplica-se a

Match(String, String)

Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs

Pesquisa a cadeia de caracteres de entrada especificada para a primeira ocorrência da expressão regular especificada.

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

Parâmetros

input
String

A cadeia de caracteres a ser pesquisada por uma correspondência.

pattern
String

O padrão de expressão regular a ser correspondido.

Retornos

Um objeto que contém informações sobre a correspondência.

Exceções

Ocorreu um erro de análise de expressão regular.

input ou pattern é null.

Ocorreu um tempo limite.

Comentários

O método estático Match(String, String) é equivalente a construir um Regex objeto com o padrão especificado e chamar o método de instância Match(String) . O mecanismo de expressão regular armazena em cache o padrão.

Você pode determinar se o padrão de expressão regular foi encontrado na cadeia de caracteres de entrada verificando a propriedade do Match objeto retornadoSuccess. Se uma correspondência for encontrada, a propriedade do Match objeto retornado Value conterá a subcadeia de caracteres correspondente. Se nenhuma correspondência for encontrada, seu valor será Empty.

Você pode recuperar correspondências subsequentes chamando repetidamente o método Match do objeto retornado NextMatch(). Você também pode recuperar todas as correspondências em uma única chamada ao método Matches(String, String).

Notas aos Chamadores

Esse método atinge o tempo limite após um intervalo igual ao valor de tempo limite padrão do domínio do aplicativo no qual ele é chamado. Se um valor de tempo limite não tiver sido definido para o domínio do aplicativo, o valor InfiniteMatchTimeout, que impede o tempo limite do método, será usado. O método estático recomendado para recuperar uma correspondência de padrão é Match(String, String), o que permite definir o intervalo de tempo limite.

Confira também

Aplica-se a

Match(String, Int32, Int32)

Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência de uma expressão regular, começando na posição inicial especificada e pesquisando apenas o número especificado de caracteres.

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

Parâmetros

input
String

A cadeia de caracteres a ser pesquisada por uma correspondência.

beginning
Int32

A posição do caractere baseado em zero na cadeia de caracteres de entrada que define a posição mais à esquerda a ser pesquisada.

length
Int32

O número de caracteres na subcadeia de caracteres a serem incluídos na pesquisa.

Retornos

Um objeto que contém informações sobre a correspondência.

Exceções

input é null.

beginning é menor que zero ou maior que o comprimento de input. -ou- length é menor que zero ou maior que o comprimento de input. -ou- - beginning + length 1 identifica uma posição que está fora do intervalo de .input

Ocorreu um tempo limite.

Comentários

O Match(String, Int32, Int32) método pesquisa a parte definida input pelo beginning padrão de expressão regular e length os parâmetros. beginning sempre define o índice do caractere mais à esquerda a ser incluído na pesquisa e length define o número máximo de caracteres a serem pesquisados. Juntos, eles definem o intervalo da pesquisa. O comportamento é exatamente como se a entrada fosse efetivamente input.Substring(beginning, length), exceto que o índice de qualquer correspondência é contado em relação ao início de input. Isso significa que as âncoras ou asserções de largura zero no início ou no final do padrão se comportam como se não houvesse nenhuma entrada fora desse intervalo.

Se a pesquisa continuar da esquerda para a direita (o padrão), o mecanismo de expressão regular pesquisa do caractere no índice beginning para o caractere no índice beginning + length – 1. Se o mecanismo de expressão regular tiver sido instanciado usando a opçãoRightToLeft, o mecanismo pesquisará do caractere no índicebeginning + length- 1 para o caractere no índice.beginning

Esse método retorna a primeira correspondência encontrada dentro desse intervalo. Você pode recuperar correspondências subsequentes chamando repetidamente o método Match do objeto retornado NextMatch().

Confira também

Aplica-se a

Match(String, String, RegexOptions)

Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência da expressão regular especificada, usando as opções de correspondência especificadas.

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

Parâmetros

input
String

A cadeia de caracteres a ser pesquisada por uma correspondência.

pattern
String

O padrão de expressão regular a ser correspondido.

options
RegexOptions

Uma combinação bit a bit dos valores de enumeração que fornecem opções para correspondência.

Retornos

Um objeto que contém informações sobre a correspondência.

Exceções

Ocorreu um erro de análise de expressão regular.

input ou pattern é null.

options não é uma combinação bit a bit válida de RegexOptions valores.

Ocorreu um tempo limite.

Comentários

O método estático Match(String, String, RegexOptions) é equivalente a construir um Regex objeto com o Regex(String, RegexOptions) construtor e chamar o método de instância Match(String) .

Você pode determinar se o padrão de expressão regular foi encontrado na cadeia de caracteres de entrada verificando a propriedade do Match objeto retornadoSuccess. Você pode recuperar correspondências subsequentes chamando repetidamente o método Match do objeto retornado NextMatch(). Você também pode recuperar todas as correspondências em uma única chamada ao método Matches(String, String, RegexOptions).

Notas aos Chamadores

Esse método atinge o tempo limite após um intervalo igual ao valor de tempo limite padrão do domínio do aplicativo no qual ele é chamado. Se um valor de tempo limite não tiver sido definido para o domínio do aplicativo, o valor InfiniteMatchTimeout, que impede o tempo limite do método, será usado. O método estático recomendado para recuperar uma correspondência de padrão é Match(String, String), o que permite definir o intervalo de tempo limite.

Confira também

Aplica-se a

Match(String, String, RegexOptions, TimeSpan)

Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs
Origem:
Regex.Match.cs

Pesquisa a cadeia de caracteres de entrada para a primeira ocorrência da expressão regular especificada, usando as opções de correspondência especificadas e o intervalo de tempo limite.

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

Parâmetros

input
String

A cadeia de caracteres a ser pesquisada por uma correspondência.

pattern
String

O padrão de expressão regular a ser correspondido.

options
RegexOptions

Uma combinação bit a bit dos valores de enumeração que fornecem opções para correspondência.

matchTimeout
TimeSpan

Um intervalo de tempo limite ou InfiniteMatchTimeout para indicar que o método não deve ter tempo limite.

Retornos

Um objeto que contém informações sobre a correspondência.

Exceções

Ocorreu um erro de análise de expressão regular.

input ou pattern é null.

options não é uma combinação bit a bit válida de RegexOptions valores. -ou- matchTimeout é negativo, zero ou maior que aproximadamente 24 dias.

Ocorreu um tempo limite.

Comentários

O método estático Match(String, String, RegexOptions, TimeSpan) é equivalente a construir um Regex objeto com o Regex(String, RegexOptions, TimeSpan) construtor e chamar o método de instância Match(String) .

Você pode determinar se o padrão de expressão regular foi encontrado na cadeia de caracteres de entrada verificando a propriedade do Match objeto retornadoSuccess. Você pode recuperar correspondências subsequentes chamando repetidamente o método Match do objeto retornado NextMatch().

O matchTimeout parâmetro especifica por quanto tempo um método de correspondência de padrões deve tentar encontrar uma correspondência antes de atingir o tempo limite. A configuração de um intervalo de tempo limite impede que expressões regulares que dependem do retrocesso excessivo apareçam para parar de responder quando processam a entrada que contém correspondências próximas. Se nenhuma correspondência for encontrada nesse intervalo de tempo, o método gerará uma RegexMatchTimeoutException exceção. matchTimeout substitui qualquer valor de tempo limite padrão definido para o domínio do aplicativo no qual o método é executado.

Notas aos Chamadores

Recomendamos que você defina o matchTimeout parâmetro como um valor apropriado, como dois segundos. Se você desabilitar o tempo limite especificando InfiniteMatchTimeout, o mecanismo de expressão regular oferecerá um desempenho ligeiramente melhor. No entanto, você deve desabilitar os tempos limite apenas nas seguintes condições:

  • Quando a entrada processada por uma expressão regular é derivada de uma fonte conhecida e confiável ou consiste em texto estático. Isso exclui o texto que foi inserido dinamicamente pelos usuários.

  • Quando o padrão de expressão regular tiver sido testado minuciosamente para garantir que ele manipule com eficiência correspondências, não correspondências e correspondências próximas.

  • Quando o padrão de expressão regular não contém elementos de linguagem conhecidos por causar retrocesso excessivo ao processar uma correspondência próxima.

Confira também

Aplica-se a