Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

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

Dentro de una subcadena de entrada especificada, reemplaza un número máximo especificado de cadenas que coinciden con un modelo de expresión regular por una cadena de reemplazo especificada.

Espacio de nombres:  System.Text.RegularExpressions
Ensamblado:  System (en System.dll)

public string Replace(
	string input,
	string replacement,
	int count,
	int startat
)

Parámetros

input
Tipo: System.String
Cadena en la que se va a buscar una coincidencia.
replacement
Tipo: System.String
Cadena de reemplazo.
count
Tipo: System.Int32
Número máximo de veces que puede producirse el reemplazo.
startat
Tipo: System.Int32
Posición de carácter de la cadena de entrada donde comienza la búsqueda.

Valor devuelto

Tipo: System.String
Cadena nueva que es idéntica a la cadena de entrada, salvo que una cadena de reemplazo ocupa el lugar de cada cadena coincidente.

ExcepciónCondición
ArgumentNullException

El valor de input o replacement es null.

ArgumentOutOfRangeException

startat es menor que cero o superior a la longitud de input.

La búsqueda de coincidencias comienza en la cadena input en la posición especificada por el parámetro startat. La expresión regular es el modelo definido por el constructor para el objeto Regex actual. Si count es negativo, los reemplazos continuarán hasta el final de la cadena. Si count supera el número de coincidencias, se reemplazan todas las coincidencias.

El parámetro replacement especifica la cadena que va a reemplazar cada coincidencia en input. replacement se puede componer de cualquier combinación de texto literal y sustituciones. Por ejemplo, el modelo de reemplazo a*${test}b inserta la cadena "a*" seguida de la subcadena que coincide con el grupo de captura test, si existe, seguida por la cadena "b". El carácter * no se reconoce como un metacarácter dentro de un modelo de reemplazo.

NotaNota

Las sustituciones son los únicos elementos del lenguaje de expresiones regulares que se reconocen en un modelo de reemplazo. Todos los otros elementos del lenguaje de la expresión regular, incluso los escapes del carácter, se permiten solo en modelos de expresión regular y no se reconocen en modelos de reemplazo.

En el siguiente ejemplo se aplica espaciado doble a todo menos a la primera línea de una cadena. Define un modelo de expresión regular, ^.*$, que coincide con una línea de texto, llama al método Match(String) para coincidir con la primera línea de la cadena y usa las propiedades Match.Count y Match.Index para determinar la posición inicial de la segunda línea.


using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "Instantiating a New Type\n" +
                     "Generally, there are two ways that an\n" + 
                     "instance of a class or structure can\n" +
                     "be instantiated. ";
      string pattern = "^.*$";
      string replacement = "\n$&";
      Regex rgx = new Regex(pattern, RegexOptions.Multiline);
      string result = String.Empty; 

      Match match = rgx.Match(input);
      // Double space all but the first line.
      if (match.Success) 
         result = rgx.Replace(input, replacement, -1, match.Index + match.Length + 1);

      Console.WriteLine(result);                     
   }
}
// The example displays the following output:
//       Instantiating a New Type
//       
//       Generally, there are two ways that an
//       
//       instance of a class or structure can
//       
//       be instntiated.


El modelo de expresión regular ^.*$ se define como se muestra en la tabla siguiente.

Modelo

Descripción

^

Buscar una coincidencia con el inicio de una línea. (Observe que se crearon instancias del objeto Regex usando la opción RegexOptions.Multiline; de lo contrario, esta clase de caracteres solo coincidiría con el principio de la cadena de entrada.)

.*

Buscar una coincidencia con cualquier carácter cero una o más veces.

$

Buscar una coincidencia con el fin de la línea. (Observe que se crearon instancias del objeto Regex usando la opción RegexOptions.Multiline; de lo contrario, esta clase de caracteres solo coincidiría con el principio de la cadena de entrada.)

La cadena de reemplazo (vbCrLf + "$&" en Visual Basic, "\n$&" en C#) agrega una nueva línea antes de la cadena coincidente. Observe que \n en el ejemplo de C# se interpreta como el carácter de nueva línea por el compilador de C#; no representa un escape de carácter de expresión regular.

.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft