【问题标题】:C# Replacing "/ with " - double quote backlash with double quote and othersC#用“替换“/” - 双引号反冲用双引号和其他
【发布时间】:2018-10-08 20:23:50
【问题描述】:

我正在尝试解析一些其中包含一堆转义字符的 HTML,很多 \t、\n、\r,每个双引号都用反斜杠转义。示例 HTML:

<div id=\"error-modal\" title=\"Retrieving Document Error\" class=\"text-hide\">\n    We're sorry, we were unable to retrieve your requested document or image.</div>

我正在尝试通过这样做来替换这些字符:

 var xpar = new XML.Parser(wConn.RawString.Replace("\\n", "").Replace("\\t", "").Replace("\\r","").Replace("\\\"", "\""))

解析器出错是因为它不喜欢 HTML 中的其他内容,但在例外情况下,字符串与以前相同,反斜杠仍然存在。我做错了什么?

【问题讨论】:

  • 你确定那些反斜杠真的存在吗?可能是调试器显示带有转义引号等的字符串。
  • 使用 System.Net.WebUtility.HtmlDecode(string) 和 System.Net.WebUtility.HtmlEncode(string)。见维基:en.wikipedia.org/wiki/…

标签: c# html .net xml parsing


【解决方案1】:

问题是替换方法将 \n \r \t 作为代码而不是您想要的文本。

您可以使用正则表达式来实现。

var patternToMatch = "\\\\(n|r|t|\\\")";
var replacement = "";
var escapedString = Regex.Replace(inputString, patternToMatch, replacement);

修改模式以符合您的要求,但基本上这个表达式可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 2015-02-27
    • 1970-01-01
    • 2018-09-23
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多