Я искал, но я не могу найти то, что мне нужно, хотя я нахожу решения для замены, но я не могу найти решение, которое мне помогает.
У меня есть входная строка с акцентами, и мне нужно удалить акценты, мой код:
string palabra = "pálábrá cón tíldés";
string palabaSinTilde = Regex.Replace(palabra, @"[^0-9A-Za-z]", "",
RegexOptions.None);
У меня есть вывод:"plbr cn tlds"
Что мне нужно: слово с ударениями
Спасибо, хорошего вечера.
Попробуйте следующий метод расширения
Объяснение:
Такие символы, как
á
,ö
, и т. д., могут быть выражены в Unicode двумя способами: один символ, который соответствует уже поставленному символу:á
например, или два последовательных символа, где первый символ — тильда, а следующий — символ, к которому он идет. применить´a
. Оба варианта приводят к тому, что текстовые редакторы показывают эту версию ->á
Эта строка:
Гарантирует, что строка расширяется для разделения символов, таких как приливы и другие модификаторы, на составляющие их символы.
Потом
Он гарантирует сохранение только тех символов, которые не являются диакритическими знаками.
Затем создается новая строка с уже удаленными символами.
Наконец, эта строка возвращает цепочку в нормальное состояние.
Я уже решил свою проблему. Сначала узнайте формат моего файла, в данном случае это был UTF8, и с этими данными я нашел решение:
используя System.Text.RegularExpressions;
Честно говоря, я решил это:
а переменная с именем palabaSinTildes выглядит так: aeioun
Что-то такое
Я думаю, это то, что вы ищете:
//Результатом является имя