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);
}
}