Заменить первое вхождение шаблона в строке [дубликат]
Возможные Дубликаты:
как мне заменить первый экземпляр строки в .NET?
Допустим у меня есть строка:
string s = "Hello world.";
как я могу заменить первое o
в слове Hello
, например,Foo
?
другими словами Я хочу закончить с:
"HellFoo world."
Я знаю, как заменить все o, но я хочу заменить только первый
3 ответа:
Я думаю, что вы можете использовать перегрузку регулярное выражение.Заменить указать максимальное количество раз на замену...
var regex = new Regex(Regex.Escape("o")); var newText = regex.Replace("Hello World", "Foo", 1);
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); }
вот метод расширения, который также может работать в
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); } }