using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var replacingValues = new Dictionary<string, string> { { "Crazy", "XXX" } };
var test = "viv-ek is a good boy.Mah - esh is Cra - zy.";
var replacedTest =
Regex.Replace(
test,
@"\b(?<part>\w+)(\s*-\s*(?<part>\w+))+\b",
match =>
{
var word = string.Join(string.Empty, match.Groups["part"].Captures.Cast<Capture>().SelectMany(capture => capture.Value));
string replacingValue;
return replacingValues.TryGetValue(word, out replacingValue) ? replacingValue : match.Value;
});
Console.WriteLine(replacedTest);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKIApwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIHJlcGxhY2luZ1ZhbHVlcyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiB7IHsgIkNyYXp5IiwgIlhYWCIgfSB9OwogICAgICAgIHZhciB0ZXN0ID0gInZpdi1layBpcyBhIGdvb2QgYm95Lk1haCAtIGVzaCBpcyBDcmEgLSB6eS4iOwogICAgICAgIHZhciByZXBsYWNlZFRlc3QgPQogICAgICAgICAgICBSZWdleC5SZXBsYWNlKAogICAgICAgICAgICAgICAgdGVzdCwKICAgICAgICAgICAgICAgIEAiXGIoPzxwYXJ0Plx3KykoXHMqLVxzKig/PHBhcnQ+XHcrKSkrXGIiLAogICAgICAgICAgICAgICAgbWF0Y2ggPT4KICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB3b3JkID0gc3RyaW5nLkpvaW4oc3RyaW5nLkVtcHR5LCBtYXRjaC5Hcm91cHNbInBhcnQiXS5DYXB0dXJlcy5DYXN0PENhcHR1cmU+KCkuU2VsZWN0TWFueShjYXB0dXJlID0+IGNhcHR1cmUuVmFsdWUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHJlcGxhY2luZ1ZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjaW5nVmFsdWVzLlRyeUdldFZhbHVlKHdvcmQsIG91dCByZXBsYWNpbmdWYWx1ZSkgPyByZXBsYWNpbmdWYWx1ZSA6IG1hdGNoLlZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHJlcGxhY2VkVGVzdCk7Cgl9Cn0=