using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Linq; public class Test { public static void Main() { var s = "- - - some text followed by more - - followed by more - - "; var res = Regex.Replace(s, @"^\W+", m => m.Value.Replace("-", "~")); Console.WriteLine(res); // => ~ ~ ~ some text followed by more - - followed by more - - Console.WriteLine(Regex.Replace(s, @"\G([^\w-]*)-", "$1~")); // => ~ ~ ~ some text followed by more - - followed by more - - Console.WriteLine(Regex.Replace(s, @"(?<=^\W*)-", "~")); // => ~ ~ ~ some text followed by more - - followed by more - - } }