C#替换“/ with” - 带双引号和其他的双引号反弹

问题描述 投票:0回答:1

我正在尝试解析一些内部有一堆转义字符的HTML,很多\ t \,\ n,\ r \ n,每个双引号都用反斜杠转义。示例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中的其他内容,但是在异常中字符串与之前相同,反斜杠仍然存在。我究竟做错了什么?

c# html .net xml parsing
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.