Как удалить диакритические знаки из строки в С#?

У меня есть строка -

125DF885DF44é112846522FF001

Я хочу удалить э из строки. Когда я ищу в Интернете, я получаю решения для удаления акцентов из э и возвращает е.

диакритический знак может находиться в любом месте строки, а не в фиксированном месте, а также может быть более одного.

Как их удалить?

Что ты пробовал? Вы пытались использовать цикл foreach и построить новую строку? Или String.Replace("é", "");?

Jeroen van Langen 17.05.2022 08:51

Я бы рекомендовал вам подойти к проблеме с другой стороны. Какие символы разрешены? Затем отфильтруйте, чтобы оставить только те, возможно, со знаком Regex.

Jeremy Lakeman 17.05.2022 08:55
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
2
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать это

string s = "125DF885DF44é112846522FF001";
string s1 = s.Replace("é","");

OMG, мне даже в голову не пришло попробовать метод замены. Большое спасибо.

Alisha 17.05.2022 08:56

Если у вас есть больше, чем просто é, вы можете поместить их в массив или список, прокрутить эту коллекцию и заменить каждый диакритический знак. Regex также является хорошим подходом, как упомянул @Jeremy Lakeman

SlobodanT 17.05.2022 09:00

Вы, наверное, хотите string s1 = s.Replace("é","e"); - примечание "e" - заменять"é" на "e", а не полностью удалить "é"

Dmitry Bychenko 17.05.2022 09:11

В общем случае мы можем удалить символы диапазона юникода NonSpacingMark:

  1. Мы превращаем каждый символ в пару: символ + его знак(и) (это диакритические знаки)
  2. Мы удаляем отметки
  3. Объединить символы обратно

Код:

using System.Linq;

...

string source = "125DF885DF44é112846522FF001";

string result = string.Concat(source
    .Normalize(NormalizationForm.FormD)
    .Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != 
                UnicodeCategory.NonSpacingMark))
  .Normalize(NormalizationForm.FormC);

Другие вопросы по теме