using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
Console.WriteLine(ReplaceAll("/]a", new[] { '/', ']' }, 'a'));
Console.WriteLine(ReplaceAll("^/]a",new[] { '^', '/', ']' }, '$'));
}
public static string ReplaceAll(string str, char[] charsToReplace, char replacementCharacter)
{
if(string.IsNullOrEmpty(str))
{
return string.Empty;
}
var pattern = $"[{string.Concat(charsToReplace).Replace(@"\", @"\\").Replace("-", @"\-").Replace("^", @"\^").Replace("]", @"\]")}]";
return Regex.Replace(str, pattern, replacementCharacter.ToString());
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJQ29uc29sZS5Xcml0ZUxpbmUoUmVwbGFjZUFsbCgiL11hIiwgbmV3W10geyAnLycsICddJyB9LCAnYScpKTsKCQlDb25zb2xlLldyaXRlTGluZShSZXBsYWNlQWxsKCJeL11hIixuZXdbXSB7ICdeJywgJy8nLCAnXScgfSwgJyQnKSk7Cgl9CglwdWJsaWMgc3RhdGljIHN0cmluZyBSZXBsYWNlQWxsKHN0cmluZyBzdHIsIGNoYXJbXSBjaGFyc1RvUmVwbGFjZSwgY2hhciByZXBsYWNlbWVudENoYXJhY3RlcikKCXsKCSAgICBpZihzdHJpbmcuSXNOdWxsT3JFbXB0eShzdHIpKQoJICAgIHsKCSAgICAgICAgcmV0dXJuIHN0cmluZy5FbXB0eTsKCSAgICB9CgkgICAgCgkgICAgdmFyIHBhdHRlcm4gPSAkIlt7c3RyaW5nLkNvbmNhdChjaGFyc1RvUmVwbGFjZSkuUmVwbGFjZShAIlwiLCBAIlxcIikuUmVwbGFjZSgiLSIsIEAiXC0iKS5SZXBsYWNlKCJeIiwgQCJcXiIpLlJlcGxhY2UoIl0iLCBAIlxdIil9XSI7CgkgICAgcmV0dXJuIFJlZ2V4LlJlcGxhY2Uoc3RyLCBwYXR0ZXJuLCByZXBsYWNlbWVudENoYXJhY3Rlci5Ub1N0cmluZygpKTsKCX0KfQ==