Я пытаюсь удалить отметку со строки, как показано ниже
string name = results[i].ToString();
var b = Regex.Replace(name, "<.*?>",string.Empty);
Строка name выглядит как <div class = "ExternalClassA6E"><p><span>GET6</span></p></div>
Когда я отлаживаю, я не вижу лишних символов spl в b. Но если посмотреть в приложении после того, как он запустил ? перед переменным b, например? GET6. Есть ли здесь что-то особенное в наценках?
Да, ? или � указывает нашим пользователям, что мы неправильно обработали их данные и повредили их. Здорово, что ты это поймал. Проблема заключается в отсутствии связи или потере контроля над кодировкой символов, которую следует использовать для чтения текста. Это должна быть кодировка символов, которая использовалась для его записи.





Я скопировал ваш текст выше и провел с ним несколько тестов, и он действительно действует очень странно! Похоже, в вашей строке есть настоящий скрытый символ, который не отображается в редакторе, но появляется, когда строка анализируется или записывается в консоль.
Чтобы проверить, что вы говорите, я вставил вашу строку в свой редактор и запустил некоторый код, а также увидел в выводе символ ?. Итак, я набрал тот же текст и провел те же тесты, и там нет ?:
private static void Main()
{
string copiedText = "><";
string typedText = "><";
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...");
}
Выход
Я предполагаю, что это не совсем ответ, поэтому я скоро удалю его, но, возможно, это заставит кого-то еще высказать свое мнение.
Вы разместили строковое значение с объектами html. Это регулярное выражение никогда не будет соответствовать такой строке в кодировке html. Таким образом, вам либо нужно использовать сущности в регулярном выражении, либо ваш ввод выглядит иначе. С другой стороны ? micht указывают на различия в кодировке символов.