solo regulares regular palabra numeros expresiones expresion exacta especiales espacio ejemplos cualquier caracteres caracter blanco alfanumerico c# regex

c# - palabra - expresiones regulares ejemplos



Reemplazar la primera aparición del patrón en una cadena (3)

Posible duplicado:
¿Cómo reemplazo la primera instancia de una cadena en .NET?

Digamos que tengo la cadena:

string s = "Hello world.";

¿Cómo puedo reemplazar la primera o en la palabra Hello , digamos Foo ?

En otras palabras, quiero terminar con:

"HellFoo world."

Sé cómo reemplazar todas las o pero quiero reemplazar solo la primera


Creo que puede usar la sobrecarga de Regex.Replace para especificar el número máximo de veces para reemplazar ...

var regex = new Regex(Regex.Escape("o")); var newText = regex.Replace("Hello World", "Foo", 1);


Hay varias maneras de hacerlo, pero lo más rápido podría ser utilizar IndexOf para encontrar la posición del índice de la letra que desea reemplazar y luego subsergir el texto antes y después de lo que desea reemplazar.


public string ReplaceFirst(string text, string search, string replace) { int pos = text.IndexOf(search); if (pos < 0) { return text; } return text.Substring(0, pos) + replace + text.Substring(pos + search.Length); }

aquí hay un Método de Extensión que también podría funcionar por solicitud de VoidKing

public static class StringExtensionMethods { public static string ReplaceFirst(this string text, string search, string replace) { int pos = text.IndexOf(search); if (pos < 0) { return text; } return text.Substring(0, pos) + replace + text.Substring(pos + search.Length); } }