Заменить первое вхождение шаблона в строку

Возможный дубликат:
Как заменить первый экземпляр строки в .NET?

Предположим, у меня есть строка:

string s = "Hello world."; 

как я могу заменить первое слово в слове « Hello », скажем, Foo ?

Другими словами, я хочу закончить:

 "HellFoo world." 

Я знаю, как заменить все o, но я хочу заменить только первый

Я думаю, вы можете использовать перегрузку Regex.Replace, чтобы указать максимальное количество раз для замены …

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

Существует несколько способов сделать это, но самым быстрым может быть использование IndexOf для поиска позиции индекса буквы, которую вы хотите заменить, а затем подстроить текст до и после того, что вы хотите заменить.

  • C # Regex for Guid
  • Выключение прямой косой черты в регулярном выражении
  • Строка Java, разделенная на "." (Точка)
  • Regex - не содержит определенных символов
  • Vim удалить все строки, которые НЕ содержат определенное слово
  • Регулярное выражение для слова «или» нескольких слов в grep
  • Лучшее регулярное выражение для проверки электронной почты в C #
  • Удаление пустых строк в Notepad ++
  • Может ли кто-нибудь объяснить мне Потенциальные Квантеры? (Обычные выражения)
  • Как создать ярлык для команды find и replace в vim?
  • jQuery DataTables - сортировать столбец точным соответствием
  • Давайте будем гением компьютера.