using System;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
char[] separators = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };
string[] wordsToDelete = { "Hello", "Thanks", "kinda" };
string SepPattern = new String(separators).Replace(@"\", @"\\").Replace("^", @"\^").Replace("-", @"\-").Replace("]", @"\]");
var pattern = $@"\b(?:{string.Join("|", wordsToDelete.Select(Regex.Escape))})\b[{SepPattern}]*";
Console.WriteLine(pattern);
Regex rx = new Regex(pattern, RegexOptions.Compiled);
DeleteWordsFromText("Hello, how are you?", rx);
DeleteWordsFromText("Thanks, I am kinda. good.", rx);
}
public static void DeleteWordsFromText(string text, Regex p)
{
Console.WriteLine($"---- {text} ----");
Console.WriteLine(p.Replace(text, ""));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCWNoYXJbXSBzZXBhcmF0b3JzID0geyAnICcsICcuJywgJywnLCAnIScsICc/JywgJzonLCAnOycsICcoJywgJyknLCAnXHQnIH07CgkJc3RyaW5nW10gd29yZHNUb0RlbGV0ZSA9IHsgIkhlbGxvIiwgIlRoYW5rcyIsICJraW5kYSIgfTsKCQlzdHJpbmcgU2VwUGF0dGVybiA9IG5ldyBTdHJpbmcoc2VwYXJhdG9ycykuUmVwbGFjZShAIlwiLCBAIlxcIikuUmVwbGFjZSgiXiIsIEAiXF4iKS5SZXBsYWNlKCItIiwgQCJcLSIpLlJlcGxhY2UoIl0iLCBAIlxdIik7CgkJdmFyIHBhdHRlcm4gPSAkQCJcYig/OntzdHJpbmcuSm9pbigifCIsIHdvcmRzVG9EZWxldGUuU2VsZWN0KFJlZ2V4LkVzY2FwZSkpfSlcYlt7U2VwUGF0dGVybn1dKiI7CgkJQ29uc29sZS5Xcml0ZUxpbmUocGF0dGVybik7CgkJUmVnZXggcnggPSBuZXcgUmVnZXgocGF0dGVybiwgUmVnZXhPcHRpb25zLkNvbXBpbGVkKTsKCQlEZWxldGVXb3Jkc0Zyb21UZXh0KCJIZWxsbywgaG93IGFyZSB5b3U/IiwgcngpOwoJCURlbGV0ZVdvcmRzRnJvbVRleHQoIlRoYW5rcywgSSBhbSBraW5kYS4gZ29vZC4iLCByeCk7Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgRGVsZXRlV29yZHNGcm9tVGV4dChzdHJpbmcgdGV4dCwgUmVnZXggcCkKICAgIHsKICAgIAlDb25zb2xlLldyaXRlTGluZSgkIi0tLS0ge3RleHR9IC0tLS0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShwLlJlcGxhY2UodGV4dCwgIiIpKTsKICAgIH0KfQ==