2011-04-07 16 views

Respuesta

9

Consulte los métodos Regex.Replace que tienen una sobrecarga de MatchEvaluator. El MatchEvaluator es un método que puede especificar para manejar cada coincidencia individual y devolver lo que se debe usar como el texto de reemplazo para esa coincidencia.

Por ejemplo, este ...

El gato saltó sobre el perro.
0: THE 1: CAT saltó sobre 2: THE 3: DOG.

... es la salida de las siguientes opciones:

using System; 
using System.Text.RegularExpressions; 

namespace MatchEvaluatorTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string text = "The cat jumped over the dog."; 
      Console.WriteLine(text); 
      Console.WriteLine(Transform(text)); 
     } 

     static string Transform(string text) 
     { 
      int matchNumber = 0; 

      return Regex.Replace(
       text, 
       @"\b\w{3}\b", 
       m => Replacement(m.Captures[0].Value, matchNumber++) 
      ); 
     } 

     static string Replacement(string s, int i) 
     { 
      return string.Format("{0}:{1}", i, s.ToUpper()); 
     } 
    } 
} 
Cuestiones relacionadas