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 - -
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwp1c2luZyBTeXN0ZW0uTGlucTsKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBzID0gIi0gLSAtIHNvbWUgdGV4dCBmb2xsb3dlZCBieSBtb3JlIC0gLSBmb2xsb3dlZCBieSBtb3JlIC0gLSAiOwoJCXZhciByZXMgPSBSZWdleC5SZXBsYWNlKHMsIEAiXlxXKyIsIG0gPT4gbS5WYWx1ZS5SZXBsYWNlKCItIiwgIn4iKSk7CgkJQ29uc29sZS5Xcml0ZUxpbmUocmVzKTsKCQkvLyA9PiB+IH4gfiBzb21lIHRleHQgZm9sbG93ZWQgYnkgbW9yZSAtIC0gZm9sbG93ZWQgYnkgbW9yZSAtIC0gCgkJQ29uc29sZS5Xcml0ZUxpbmUoUmVnZXguUmVwbGFjZShzLCBAIlxHKFteXHctXSopLSIsICIkMX4iKSk7CgkJLy8gPT4gfiB+IH4gc29tZSB0ZXh0IGZvbGxvd2VkIGJ5IG1vcmUgLSAtIGZvbGxvd2VkIGJ5IG1vcmUgLSAtIAoJCUNvbnNvbGUuV3JpdGVMaW5lKFJlZ2V4LlJlcGxhY2UocywgQCIoPzw9XlxXKiktIiwgIn4iKSk7CgkJLy8gPT4gfiB+IH4gc29tZSB0ZXh0IGZvbGxvd2VkIGJ5IG1vcmUgLSAtIGZvbGxvd2VkIGJ5IG1vcmUgLSAtIAoJfQp9