Удалите скрытые символы из строки

Я пытаюсь удалить отметку со строки, как показано ниже

 string name = results[i].ToString();
 var b = Regex.Replace(name, "<.*?>",string.Empty);

Строка name выглядит как &lt;div class = "ExternalClassA6E"&gt;&lt;p&gt;​&lt;span&gt;GET6&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;

Когда я отлаживаю, я не вижу лишних символов spl в b. Но если посмотреть в приложении после того, как он запустил ? перед переменным b, например? GET6. Есть ли здесь что-то особенное в наценках?

Вы разместили строковое значение с объектами html. Это регулярное выражение никогда не будет соответствовать такой строке в кодировке html. Таким образом, вам либо нужно использовать сущности в регулярном выражении, либо ваш ввод выглядит иначе. С другой стороны ? micht указывают на различия в кодировке символов.

ZorgoZ 24.08.2018 20:18

Да, ? или � указывает нашим пользователям, что мы неправильно обработали их данные и повредили их. Здорово, что ты это поймал. Проблема заключается в отсутствии связи или потере контроля над кодировкой символов, которую следует использовать для чтения текста. Это должна быть кодировка символов, которая использовалась для его записи.

Tom Blodget 25.08.2018 18:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
120
1

Ответы 1

Я скопировал ваш текст выше и провел с ним несколько тестов, и он действительно действует очень странно! Похоже, в вашей строке есть настоящий скрытый символ, который не отображается в редакторе, но появляется, когда строка анализируется или записывается в консоль.

Чтобы проверить, что вы говорите, я вставил вашу строку в свой редактор и запустил некоторый код, а также увидел в выводе символ ?. Итак, я набрал тот же текст и провел те же тесты, и там нет ?:

private static void Main()
{
    string copiedText = "&gt;​&lt;";
    string typedText  = "&gt;&lt;";

    Console.WriteLine("\nCopied Text Results\n" + "-------------------");
    Console.WriteLine("\nLength: " + copiedText.Length);
    Console.WriteLine("\nCharacters and ascii values:");
    Console.WriteLine(string.Join(", ",
        copiedText.Select(character => character + " = " + (int) character)));
    Console.WriteLine("\nString value:");
    Console.WriteLine(copiedText);
    Console.WriteLine("\nHtml Decoded value:");
    Console.WriteLine(HttpUtility.HtmlDecode(copiedText));

    Console.WriteLine(Environment.NewLine + new string('-', Console.WindowWidth));

    Console.WriteLine("\nTyped Text Results\n" + "------------------");
    Console.WriteLine("\nLength: " + typedText.Length);
    Console.WriteLine("\nCharacters and ascii values:");
    Console.WriteLine(string.Join(", ",
        typedText.Select(character => character + " = " + (int) character)));
    Console.WriteLine("\nString value:");
    Console.WriteLine(typedText);
    Console.WriteLine("\nHtml Decoded value:");
    Console.WriteLine(HttpUtility.HtmlDecode(typedText));

    GetKeyFromUser("\nDone! Press any key to exit...");
}

Выход

![

Я предполагаю, что это не совсем ответ, поэтому я скоро удалю его, но, возможно, это заставит кого-то еще высказать свое мнение.

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