using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var s = "=StringOne&=StringTwo&=StringThree&=StringFour&"; var idx_to_replace = 2; // Replace this occurrence var cnt = 0; // Counter var result = string.Empty; // Final result variable var rx = "[^=]+(?=&)"; // Pattern for (var m=Regex.Match(s, rx); m.Success; m = m.NextMatch()) { cnt++; if (cnt == idx_to_replace) { result = $"{s.Substring(0, m.Index)}REPLACED{s.Substring(m.Index+m.Length)}"; break; } } Console.WriteLine(result); } }