איך להסיר ניקוד וטעמים מטקסט בc#
מצאתי שני דרכים אשמח לקבל המלצות איזה עדיף ולמה.
# אפשרות א על ידי רגקס
public static string RemoveDiactricts(string input)
{
return Regex.Replace(input, @"\p{M}", "");
}
# אפשרות ב על ידי ספריית Diactricts
דרך ה-NuGet התקינו את ספריית Diactricts

לאחמ"כ תוכלו להתשמש עם ה-class דלהלן
public class HebrewDiacriticsMapping : IAccentMapping
{
private readonly Dictionary<char, MappingReplacement> mappings;
public HebrewDiacriticsMapping()
{
mappings = CreateMappings();
}
public IDictionary<char, MappingReplacement> Mapping => mappings;
private Dictionary<char, MappingReplacement> CreateMappings()
{
var mappings = new Dictionary<char, MappingReplacement>();
// Remove all Hebrew diacritics by mapping them to an empty string
// Diacritics in Hebrew range from U+0591 to U+05BD, U+05C1, U+05C2, U+05C4, U+05C5
// U+0591 - U+05AF (excluding U+05BE - U+05C0, which are vowels and other symbols)
// U+05B0 - U+05BD, U+05C1, U+05C2, U+05C4, U+05C5 (including additional diacritics)
for (int i = 0x0591; i <= 0x05AF; i++)
{
char diacriticChar = (char)i;
mappings[diacriticChar] = new MappingReplacement();
}
for (int i = 0x05B0; i <= 0x05BD; i++)
{
char diacriticChar = (char)i;
mappings[diacriticChar] = new MappingReplacement();
}
mappings['\u05C1'] = new MappingReplacement();
mappings['\u05C2'] = new MappingReplacement();
mappings['\u05C4'] = new MappingReplacement();
mappings['\u05C5'] = new MappingReplacement();
return mappings;
}
}
public static class HebrewDiacriticsRemover
{
private static readonly DiacriticsMapper mapper = new DiacriticsMapper(new HebrewDiacriticsMapping());
public static string RemoveHebrewDiacritics(this string input)
{
return mapper.RemoveDiacritics(input);
}
}



