Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Regex.Replace (String, MatchEvaluator, Int32)

Dentro de uma seqüência de entrada especificada, substitui um número máximo especificado de seqüências de caracteres que correspondem um padrão de expressão regular com uma seqüência de caracteres retornada por um MatchEvaluator delegate.

Namespace:  System.Text.RegularExpressions
Assembly:  System (em System.dll)

public string Replace(
	string input,
	MatchEvaluator evaluator,
	int count
)

Parâmetros

input
Tipo: System.String
A seqüência de caracteres para pesquisar uma correspondência.
evaluator
Tipo: System.Text.RegularExpressions.MatchEvaluator
Um método personalizado que examina cada correspondência e retorna a seqüência de caracteres correspondente original ou em uma seqüência de caracteres de substituição.
count
Tipo: System.Int32
O número máximo de vezes que a substituição ocorrerá.

Valor de retorno

Tipo: System.String
Uma nova seqüência que é idêntica a seqüência de caracteres de entrada, exceto pelo fato de uma seqüência de caracteres de substituição ocorre a cada seqüência de caracteres correspondente.

ExceçãoCondição
ArgumentNullException

inputor evaluator é null.

O Regex.Replace(String, MatchEvaluator, Int32) método é útil para substituir uma correspondência da expressão regular, se qualquer uma das seguintes condições for verdadeira:

  • Prontamente, a seqüência de caracteres de substituição não pode ser especificada por um padrão de substituição de expressão regular.

  • A seqüência de caracteres de substituição é resultado de algum processamento feito na seqüência de caracteres correspondente.

  • Os resultados de seqüência de caracteres de substituição de processamento condicional.

O método é equivalente a chamar o Regex.Matches(String) método e passar o primeiro countMatch objetos retornado MatchCollection coleção para a evaluator delegate.

A expressão regular é um padrão definido pelo construtor para a atual Regex objeto.

O evaluator parâmetro é o delegado para um método personalizado que você define e que examina cada correspondência. O método personalizado deve ter a seguinte assinatura para coincidir com o MatchEvaluator delegate.


public string MatchEvaluatorMethod(Match match)


O método personalizado retorna uma seqüência de caracteres que substitui a entrada correspondente.

O exemplo a seguir usa uma expressão regular para deliberadamente cometer metade das palavras em uma lista. Ele usa a expressão regular \w*(ie|ei)\w* para corresponder às palavras que incluem os caracteres "ie" ou "ei". Ele passa a primeira metade das palavras correspondentes para o ReverseLetter método, que, por sua vez, usa o Replace método para reverter o "i" e "e" a seqüência de caracteres correspondentes. As palavras restantes permanecerão inalteradas.


using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "deceive relieve achieve belief fierce receive";
      string pattern = @"\w*(ie|ei)\w*";
      Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
      Console.WriteLine("Original string: " + input);

      string result = rgx.Replace(input, new MatchEvaluator(Example.ReverseLetter), 
                                  input.Split(' ').Length / 2);
      Console.WriteLine("Returned string: " + result);
   }

   static string ReverseLetter(Match match)
   {
      return Regex.Replace(match.Value, "([ie])([ie])", "$2$1", 
                           RegexOptions.IgnoreCase);            
   }
}
// The example displays the following output:
//    Original string: deceive relieve achieve belief fierce receive
//    Returned string: decieve releive acheive belief fierce receive


A expressão regular \w*(ie|ei)\w* é definido como mostrado na tabela a seguir.

Pattern

Descrição

\w*

Corresponde a zero ou mais caracteres do word.

(ie|ei)

Uma correspondência "ie" ou "ei".

\w*

Corresponde a zero ou mais caracteres do word.

O padrão de expressão regular ([ie])([ie]) na ReverseLetter método corresponde a "i" primeiro ou "e" no diphthong "ie" ou "ei" e atribui a letra para a primeira captura de grupo. Ele corresponde ao segundo "i" ou "e" e atribui a letra para a segunda captura do grupo. Os dois caracteres, em seguida, são revertidos chamando o Replace o método com o padrão de substituição $2$1.

.NET Framework

Com suporte em: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.

Date

Histórico

Motivo

Agosto de 2010

Adicionado um exemplo.

Aprimoramento de informações.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft