我正在尝试从下面的字符串中删除标记 p>
string name = results[i].ToString();
var b = Regex.Replace(name, "<.*?>",string.Empty);
字符串name
看起来像<div class="ExternalClassA6E"><p><span>GET6</span></p></div>
当我调试时,在b中看不到任何多余的spl字符。但是,当在应用程序中看到它后,它在变量b的前面运行了?
,例如?GET6。这里的标记有什么特别之处吗?
答案 0 :(得分:3)
我在上面复制了您的文本并对其进行了一些测试,它的行为确实非常奇怪! 您的字符串中似乎存在一个实际的隐藏字符,该字符不会在编辑器中显示,但在将字符串解析或写入控制台时才会出现。
为了测试您在说什么,我将您的字符串粘贴到编辑器中并运行了一些代码,并且在输出中还看到了?
字符。因此,我键入了相同的文本并运行了相同的测试,并且那里没有?
:
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...");
}
输出
我想这并不是一个真正的答案,所以我会尽快删除它,但也许它会激发其他人提供一些反馈。