Regex.Matches Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Pesquisa em uma cadeia de caracteres de entrada todas as ocorrências de uma expressão regular e retorna todas as correspondências.
Sobrecargas
Matches(String, String, RegexOptions, TimeSpan) |
Pesquisa todas as ocorrências de uma expressão regular especificada na cadeia de caracteres de entrada especificada, usando as opções de correspondência especificadas e o intervalo de tempo limite. |
Matches(String, String, RegexOptions) |
Pesquisa todas as ocorrências de uma expressão regular especificada na cadeia de caracteres de entrada especificada, usando as opções de correspondência especificadas. |
Matches(String, Int32) |
Pesquisa a cadeia de caracteres de entrada especificada para todas as ocorrências de uma expressão regular, começando na posição inicial especificada na cadeia de caracteres. |
Matches(String) |
Pesquisa todas as ocorrências de uma expressão regular na cadeia de caracteres de entrada especificada. |
Matches(String, String) |
Pesquisa todas as ocorrências de uma expressão regular especificada na cadeia de entrada especificada. |
Matches(String, String, RegexOptions, TimeSpan)
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
Pesquisa todas as ocorrências de uma expressão regular especificada na cadeia de caracteres de entrada especificada, usando as opções de correspondência especificadas e o intervalo de tempo limite.
public:
static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As MatchCollection
Parâmetros
- input
- String
A cadeia de caracteres na qual será pesquisada uma correspondência.
- pattern
- String
O padrão de expressão regular para correspondência.
- options
- RegexOptions
Uma combinação bit a bit dos valores de enumeração que especifica opções para correspondência.
- matchTimeout
- TimeSpan
Um intervalo de tempo limite ou InfiniteMatchTimeout para indicar que o método não deve atingir o tempo limite.
Retornos
Uma coleção dos objetos Match encontrados pela pesquisa. Se nenhuma correspondência for encontrada, o método retornará um objeto de coleção vazio.
Exceções
Ocorreu um erro de análise da expressão regular.
input
ou pattern
é null
.
options
não é uma combinação bit a bit válida de valores de RegexOptions.
- ou -
matchTimeout
é negativo, zero ou maior que aproximadamente 24 dias.
Exemplos
O exemplo a seguir chama o Matches(String, String, RegexOptions, TimeSpan) método para executar uma comparação que diferencia maiúsculas de minúsculas que corresponda a qualquer palavra em uma frase que termine em "es". Em seguida, ele chama o Matches(String, String, RegexOptions, TimeSpan) método para executar uma comparação que não diferencia maiúsculas de minúsculas do padrão com a cadeia de caracteres de entrada. Em ambos os casos, o intervalo de tempo limite é definido como um segundo. Como mostra a saída, os dois métodos retornam resultados diferentes.
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
string sentence = "NOTES: Any notes or comments are optional.";
// Call Matches method without specifying any options.
try {
foreach (Match match in Regex.Matches(sentence, pattern,
RegexOptions.None,
TimeSpan.FromSeconds(1)))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
catch (RegexMatchTimeoutException) {
// Do Nothing: Assume that timeout represents no match.
}
Console.WriteLine();
// Call Matches method for case-insensitive matching.
try {
foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
catch (RegexMatchTimeoutException) {}
}
}
// The example displays the following output:
// Found 'notes' at position 11
//
// Found 'NOTES' at position 0
// Found 'notes' at position 11
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim sentence As String = "NOTES: Any notes or comments are optional."
' Call Matches method without specifying any options.
For Each match As Match In Regex.Matches(sentence, pattern,
RegexOptions.None,
TimeSpan.FromSeconds(1))
Try
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Catch e As RegexMatchTimeoutException
' Do Nothing: Assume that timeout represents no match.
End Try
Next
Console.WriteLine()
' Call Matches method for case-insensitive matching.
Try
For Each match As Match In Regex.Matches(sentence, pattern,
RegexOptions.IgnoreCase,
TimeSpan.FromSeconds(1))
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
Catch de As RegexMatchTimeoutException
' Do Nothing: Assume that timeout represents no match.
End Try
End Sub
End Module
' The example displays the following output:
' Found 'notes' at position 11
'
' Found 'NOTES' at position 0
' Found 'notes' at position 11
O padrão de expressão regular \b\w+es\b
é definido conforme mostrado na tabela a seguir.
Padrão | Descrição |
---|---|
\b |
Começar a correspondência em um limite de palavra. |
\w+ |
Fazer a correspondência a um ou mais caracteres de palavra. |
es |
Corresponde à cadeia de caracteres literal "es". |
\b |
Termina a correspondência em um limite de palavra. |
Comentários
O Matches(String, String, RegexOptions, TimeSpan) método é semelhante ao Match(String, String, RegexOptions, TimeSpan) método , exceto que ele retorna informações sobre todas as correspondências encontradas na cadeia de caracteres de entrada, em vez de uma única correspondência. É equivalente ao seguinte código:
try {
Match match = Regex.Match(input, pattern, options,
TimeSpan.FromSeconds(1));
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
}
catch (RegexMatchTimeoutException) {
// Do nothing: assume that exception represents no match.
}
Try
Dim match As Match = Regex.Match(input, pattern, options,
TimeSpan.FromSeconds(1))
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
Catch e As RegexMatchTimeoutException
' Do nothing: assume that exception represents no match.
End Try
Os métodos estáticos Matches
são equivalentes a construir um Regex objeto com o padrão de expressão regular especificado e chamar o método Matches
de instância .
O pattern
parâmetro consiste em elementos de linguagem de expressão regular que descrevem simbolicamente a cadeia de caracteres a ser correspondida. Para obter mais informações sobre expressões regulares, consulte Expressões regulares do .NET e Linguagem de Expressão Regular – Referência Rápida.
O Matches método usa a avaliação lenta para preencher o objeto retornado MatchCollection . Acessar membros dessa coleção como MatchCollection.Count e MatchCollection.CopyTo faz com que a coleção seja preenchida imediatamente. Para aproveitar a avaliação lenta, você deve iterar a coleção usando um constructo como foreach
em C# e For Each
...Next
no Visual Basic.
Devido à avaliação lenta, chamar o Matches método não gera uma RegexMatchTimeoutException exceção. No entanto, uma exceção é gerada quando uma operação é executada no MatchCollection objeto retornado por esse método, se uma operação correspondente exceder esse intervalo de tempo limite especificado pelomatchTimeout
parâmetro .
Notas aos Chamadores
Recomendamos que você defina o matchTimeout
parâmetro como um valor apropriado, como dois segundos. Se você desabilitar tempos limite especificando InfiniteMatchTimeout, o mecanismo de expressões regulares 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 correspondências, não correspondências e correspondências próximas com eficiência.
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
Matches(String, String, RegexOptions)
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
Pesquisa todas as ocorrências de uma expressão regular especificada na cadeia de caracteres de entrada especificada, usando as opções de correspondência especificadas.
public:
static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Matches : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String, options As RegexOptions) As MatchCollection
Parâmetros
- input
- String
A cadeia de caracteres na qual será pesquisada uma correspondência.
- pattern
- String
O padrão de expressão regular para correspondência.
- options
- RegexOptions
Uma combinação bit a bit dos valores de enumeração que especifica opções para correspondência.
Retornos
Uma coleção dos objetos Match encontrados pela pesquisa. Se nenhuma correspondência for encontrada, o método retornará um objeto de coleção vazio.
Exceções
Ocorreu um erro de análise da expressão regular.
input
ou pattern
é null
.
options
não é uma combinação bit a bit válida de valores de RegexOptions.
Exemplos
O exemplo a seguir chama o Matches(String, String) método para identificar qualquer palavra em uma frase que termina em "es" e, em seguida, chama o Matches(String, String, RegexOptions) método para executar uma comparação que não diferencia maiúsculas de minúsculas do padrão com a cadeia de caracteres de entrada. Como mostra a saída, os dois métodos retornam resultados diferentes.
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
string sentence = "NOTES: Any notes or comments are optional.";
// Call Matches method without specifying any options.
foreach (Match match in Regex.Matches(sentence, pattern))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
Console.WriteLine();
// Call Matches method for case-insensitive matching.
foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
}
// The example displays the following output:
// Found 'notes' at position 11
//
// Found 'NOTES' at position 0
// Found 'notes' at position 11
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim sentence As String = "NOTES: Any notes or comments are optional."
' Call Matches method without specifying any options.
For Each match As Match In Regex.Matches(sentence, pattern)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
Console.WriteLine()
' Call Matches method for case-insensitive matching.
For Each match As Match In Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
End Sub
End Module
' The example displays the following output:
' Found 'notes' at position 11
'
' Found 'NOTES' at position 0
' Found 'notes' at position 11
O padrão de expressão regular \b\w+es\b
é definido conforme mostrado na tabela a seguir.
Padrão | Descrição |
---|---|
\b |
Começar a correspondência em um limite de palavra. |
\w+ |
Fazer a correspondência a um ou mais caracteres de palavra. |
es |
Corresponde à cadeia de caracteres literal "es". |
\b |
Termina a correspondência em um limite de palavra. |
Comentários
O Matches(String, String, RegexOptions) método é semelhante ao Match(String, String, RegexOptions) método , exceto que ele retorna informações sobre todas as correspondências encontradas na cadeia de caracteres de entrada, em vez de uma única correspondência. É equivalente ao seguinte código:
Match match = Regex.Match(input, pattern, options);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern, options)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
Os métodos estáticos Matches
são equivalentes a construir um Regex objeto com o padrão de expressão regular especificado e chamar o método Matches
de instância .
O pattern
parâmetro consiste em elementos de linguagem de expressão regular que descrevem simbolicamente a cadeia de caracteres a ser correspondida. Para obter mais informações sobre expressões regulares, consulte Expressões regulares do .NET e Linguagem de Expressão Regular – Referência Rápida.
O Matches método usa a avaliação lenta para preencher o objeto retornado MatchCollection . Acessar membros dessa coleção como MatchCollection.Count e MatchCollection.CopyTo faz com que a coleção seja preenchida imediatamente. Para aproveitar a avaliação lenta, você deve iterar a coleção usando um constructo como foreach
em C# e For Each
...Next
no Visual Basic.
Devido à avaliação lenta, chamar o Matches(String, String) método não gera uma RegexMatchTimeoutException exceção. No entanto, a exceção é gerada quando uma operação é executada no MatchCollection objeto retornado por esse método, se um intervalo de tempo limite for definido pela propriedade "REGEX_DEFAULT_MATCH_TIMEOUT" do domínio do aplicativo atual e uma operação correspondente exceder esse intervalo de tempo limite.
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 que o método atinja o tempo limite, será usado. O método estático recomendado para recuperar várias correspondências de padrão é Matches(String, String, RegexOptions, TimeSpan), que permite definir o intervalo de tempo limite.
Confira também
Aplica-se a
Matches(String, Int32)
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
Pesquisa a cadeia de caracteres de entrada especificada para todas as ocorrências de uma expressão regular, começando na posição inicial especificada na cadeia de caracteres.
public:
System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, int startat);
public System.Text.RegularExpressions.MatchCollection Matches (string input, int startat);
member this.Matches : string * int -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String, startat As Integer) As MatchCollection
Parâmetros
- input
- String
A cadeia de caracteres na qual será pesquisada uma correspondência.
- startat
- Int32
A posição do caractere na cadeia de caracteres de entrada na qual a pesquisa será iniciada.
Retornos
Uma coleção dos objetos Match encontrados pela pesquisa. Se nenhuma correspondência for encontrada, o método retornará um objeto de coleção vazio.
Exceções
input
é null
.
startat
é menor que zero ou maior que o tamanho de input
.
Exemplos
O exemplo a seguir usa o Match(String) método para localizar a primeira palavra em uma frase que termina em "es" e, em seguida, chama o Matches(String, Int32) método para identificar as palavras adicionais que terminam em "es".
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
Regex rgx = new Regex(pattern);
string sentence = "Who writes these notes and uses our paper?";
// Get the first match.
Match match = rgx.Match(sentence);
if (match.Success) {
Console.WriteLine("Found first 'es' in '{0}' at position {1}",
match.Value, match.Index);
// Get any additional matches.
foreach (Match m in rgx.Matches(sentence, match.Index + match.Length))
Console.WriteLine("Also found '{0}' at position {1}",
m.Value, m.Index);
}
}
}
// The example displays the following output:
// Found first 'es' in 'writes' at position 4
// Also found 'notes' at position 17
// Also found 'uses' at position 27
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim rgx As New Regex(pattern)
Dim sentence As String = "Who writes these notes and uses our paper?"
' Get the first match.
Dim match As Match = rgx.Match(sentence)
If match.Success Then
Console.WriteLine("Found first 'es' in '{0}' at position {1}", _
match.Value, match.Index)
' Get any additional matches.
For Each match In rgx.Matches(sentence, match.Index + match.Length)
Console.WriteLine("Also found '{0}' at position {1}", _
match.Value, match.Index)
Next
End If
End Sub
End Module
' The example displays the following output:
' Found first 'es' in 'writes' at position 4
' Also found 'notes' at position 17
' Also found 'uses' at position 27
O padrão de expressão regular \b\w+es\b
é definido conforme mostrado na tabela a seguir.
Padrão | Descrição |
---|---|
\b |
Começar a correspondência em um limite de palavra. |
\w+ |
Fazer a correspondência a um ou mais caracteres de palavra. |
es |
Corresponde à cadeia de caracteres literal "es". |
\b |
Termina a correspondência em um limite de palavra. |
Comentários
O Matches(String, Int32) método é semelhante ao Match(String, Int32) método , exceto que ele retorna informações sobre todas as correspondências encontradas na cadeia de caracteres de entrada, em vez de uma única correspondência. É equivalente ao seguinte código:
Match match = regex.Match(input, startAt);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = regex.Match(input, startAt)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
O padrão de expressão regular para o qual o Matches(String, Int32) método pesquisa é definido pela chamada para um dos construtores de Regex classe. Para obter mais informações sobre os elementos que podem formar um padrão de expressão regular, consulte Linguagem de Expressão Regular – Referência Rápida.
Para obter mais detalhes sobre startat
, consulte a seção Comentários de Match(String, Int32).
O Matches método usa a avaliação lenta para preencher o objeto retornado MatchCollection . Acessar membros dessa coleção como MatchCollection.Count e MatchCollection.CopyTo faz com que a coleção seja preenchida imediatamente. Para aproveitar a avaliação lenta, você deve iterar a coleção usando um constructo como foreach
em C# e For Each
...Next
no Visual Basic.
Devido à avaliação lenta, chamar o Matches(String, Int32) método não gera uma RegexMatchTimeoutException exceção. No entanto, a exceção é gerada quando uma operação é executada no MatchCollection objeto retornado por esse método, se a MatchTimeout propriedade não Regex.InfiniteMatchTimeout for e uma operação correspondente exceder o intervalo de tempo limite.
Confira também
Aplica-se a
Matches(String)
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
Pesquisa todas as ocorrências de uma expressão regular na cadeia de caracteres de entrada especificada.
public:
System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input);
public System.Text.RegularExpressions.MatchCollection Matches (string input);
member this.Matches : string -> System.Text.RegularExpressions.MatchCollection
Public Function Matches (input As String) As MatchCollection
Parâmetros
- input
- String
A cadeia de caracteres na qual será pesquisada uma correspondência.
Retornos
Uma coleção dos objetos Match encontrados pela pesquisa. Se nenhuma correspondência for encontrada, o método retornará um objeto de coleção vazio.
Exceções
input
é null
.
Exemplos
O exemplo a seguir usa o Matches(String) método para identificar qualquer palavra em uma frase que termine em "es".
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
Regex rgx = new Regex(pattern);
string sentence = "Who writes these notes?";
foreach (Match match in rgx.Matches(sentence))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
}
// The example displays the following output:
// Found 'writes' at position 4
// Found 'notes' at position 17
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim rgx As New Regex(pattern)
Dim sentence As String = "Who writes these notes?"
For Each match As Match In rgx.Matches(sentence)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
End Sub
End Module
' The example displays the following output:
' Found 'writes' at position 4
' Found 'notes' at position 17
O padrão de expressão regular \b\w+es\b
é definido conforme mostrado na tabela a seguir.
Padrão | Descrição |
---|---|
\b |
Começar a correspondência em um limite de palavra. |
\w+ |
Fazer a correspondência a um ou mais caracteres de palavra. |
es |
Corresponda à cadeia de caracteres literal "es". |
\b |
Termina a correspondência em um limite de palavra. |
Comentários
O Matches(String) método é semelhante ao Match(String) método , exceto pelo fato de retornar informações sobre todas as correspondências encontradas na cadeia de caracteres de entrada, em vez de uma única correspondência. É equivalente ao seguinte código:
Match match = regex.Match(input);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = regex.Match(input)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
A coleção inclui apenas correspondências e termina na primeira não correspondência.
O padrão de expressão regular para o qual o Matches(String) método pesquisa é definido pela chamada para um dos construtores de Regex classe. Para obter mais informações sobre os elementos que podem formar um padrão de expressão regular, consulte Linguagem de Expressão Regular – Referência Rápida.
O Matches método usa a avaliação lenta para preencher o objeto retornado MatchCollection . Acessar membros dessa coleção como MatchCollection.Count e MatchCollection.CopyTo faz com que a coleção seja preenchida imediatamente. Para aproveitar a avaliação lenta, você deve iterar a coleção usando um constructo como foreach
em C# e For Each
...Next
no Visual Basic.
Devido à avaliação lenta, chamar o Matches(String) método não gera uma RegexMatchTimeoutException exceção. No entanto, a exceção é gerada quando uma operação é executada no MatchCollection objeto retornado por esse método, se a MatchTimeout propriedade não Regex.InfiniteMatchTimeout for e uma operação correspondente exceder o intervalo de tempo limite.
Confira também
Aplica-se a
Matches(String, String)
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
- Origem:
- Regex.Match.cs
Pesquisa todas as ocorrências de uma expressão regular especificada na cadeia de entrada especificada.
public:
static System::Text::RegularExpressions::MatchCollection ^ Matches(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.MatchCollection Matches (string input, string pattern);
static member Matches : string * string -> System.Text.RegularExpressions.MatchCollection
Public Shared Function Matches (input As String, pattern As String) As MatchCollection
Parâmetros
- input
- String
A cadeia de caracteres na qual será pesquisada uma correspondência.
- pattern
- String
O padrão de expressão regular para correspondência.
Retornos
Uma coleção dos objetos Match encontrados pela pesquisa. Se nenhuma correspondência for encontrada, o método retornará um objeto de coleção vazio.
Exceções
Ocorreu um erro de análise da expressão regular.
input
ou pattern
é null
.
Exemplos
O exemplo a seguir usa o Matches(String, String) método para identificar qualquer palavra em uma frase que termine em "es".
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\b\w+es\b";
string sentence = "Who writes these notes?";
foreach (Match match in Regex.Matches(sentence, pattern))
Console.WriteLine("Found '{0}' at position {1}",
match.Value, match.Index);
}
}
// The example displays the following output:
// Found 'writes' at position 4
// Found 'notes' at position 17
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\b\w+es\b"
Dim sentence As String = "Who writes these notes?"
For Each match As Match In Regex.Matches(sentence, pattern)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
End Sub
End Module
' The example displays the following output:
' Found 'writes' at position 4
' Found 'notes' at position 17
O padrão de expressão regular \b\w+es\b
é definido conforme mostrado na tabela a seguir.
Padrão | Descrição |
---|---|
\b |
Começar a correspondência em um limite de palavra. |
\w+ |
Fazer a correspondência a um ou mais caracteres de palavra. |
es |
Corresponda à cadeia de caracteres literal "es". |
\b |
Termina a correspondência em um limite de palavra. |
Comentários
O Matches(String, String) método é semelhante ao Match(String, String) método , exceto pelo fato de retornar informações sobre todas as correspondências encontradas na cadeia de caracteres de entrada, em vez de uma única correspondência. É equivalente ao seguinte código:
Match match = Regex.Match(input, pattern);
while (match.Success) {
// Handle match here...
match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern)
Do While match.Success
' Handle match here...
match = match.NextMatch()
Loop
Os métodos estáticos Matches
são equivalentes a construir um Regex objeto com o padrão de expressão regular especificado e chamar o método Matches
de instância .
O pattern
parâmetro consiste em elementos de linguagem de expressão regular que descrevem simbolicamente a cadeia de caracteres a ser correspondida. Para obter mais informações sobre expressões regulares, consulte Expressões regulares do .NET e Linguagem de Expressão Regular – Referência Rápida.
O Matches método usa a avaliação lenta para preencher o objeto retornado MatchCollection . Acessar membros dessa coleção como MatchCollection.Count e MatchCollection.CopyTo faz com que a coleção seja preenchida imediatamente. Para aproveitar a avaliação lenta, você deve iterar a coleção usando um constructo como foreach
em C# e For Each
...Next
no Visual Basic.
Devido à avaliação lenta, chamar o Matches(String, String) método não gera uma RegexMatchTimeoutException exceção. No entanto, a exceção é gerada quando uma operação é executada no MatchCollection objeto retornado por esse método, se um intervalo de tempo limite for definido pela propriedade "REGEX_DEFAULT_MATCH_TIMEOUT" do domínio do aplicativo atual e uma operação correspondente exceder esse intervalo de tempo limite.
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 várias correspondências de padrão é Matches(String, String, RegexOptions, TimeSpan), que permite especificar o intervalo de tempo limite.