fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.RegularExpressions;
  5.  
  6. public class Program
  7. {
  8. public static void Main()
  9. {
  10. string source = "חָזִיתִי כְּמִבַּעַד לֶעָשָׁן בְּקִמּוּרֵי הָרֶסֶס הַלָּבָן";
  11. Dictionary<char, char[]> exclude = new Dictionary<char, char[]>
  12. {
  13. {'\u05db', new char[] {'\u05bc' } }, // כּ
  14. {'\u05d1', new char[] {'\u05bc', '\u05b7' } }, // בַּ
  15. };
  16. string replaced = RemoveDiacritics(exclude, source);
  17. Console.WriteLine(replaced);
  18. }
  19. public static string RemoveDiacritics(Dictionary<char, char[]> exclude, string source)
  20. {
  21. string exclusionGroup = string.Join("|", exclude.Select(p => string.Concat(p.Key, string.Join(string.Empty, p.Value))));
  22. string leaveOnly = String.Concat(String.Format(@"({0})|\p{{M}}+", exclusionGroup));
  23. return Regex.Replace(source, leaveOnly, "$1");
  24. }
  25. }
Success #stdin #stdout 0.04s 134592KB
stdin
Standard input is empty
stdout
חזיתי כּמבַּעד לעשן בקמורי הרסס הלבן