Double Possible:
Comment puis-je remplacer la première occurrence d'une chaîne dans .NET?Disons que j'ai de la chaîne:
string s = "Hello world.";
comment puis-je remplacer la première
o
dans le motHello
, disonsFoo
?En d'autres termes je veux retrouver avec:
"HellFoo world."
Je sais comment remplacer tous les o mais je veux remplacer seulement le premier
Réponses
Trop de publicités?Je pense que vous pouvez utiliser la surcharge de Regex.Replace pour spécifier le nombre maximal de fois à remplacer ...
var regex = new Regex(Regex.Escape("o"));
var newText = regex.Replace("Hello World", "Foo", 1);
DJ KRAZE
Points
8546
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);
}
Voici une méthode d'extension qui pourrait également fonctionner par requête 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);
}
}
Mitchel Sellers
Points
38352