我在一个简单的替换问题上遇到了困难,需要一个好的解决方案。背景:这是一个用\"编码的xml字符串,需要将其替换为",以便使用serializer.Deserialize进行反序列化。
我想要将反斜杠双引号替换为一个双引号,例如字符串 " \"hello\" ",使其变成 " "hello" "。由于文本很长,因此不可能删除反斜杠。感谢您的建议。 我认为应该是
string s= "\" teetete \"";
string t;
t = s.Replace("\"", @"""");
我在一个简单的替换问题上遇到了困难,需要一个好的解决方案。背景:这是一个用\"编码的xml字符串,需要将其替换为",以便使用serializer.Deserialize进行反序列化。
我想要将反斜杠双引号替换为一个双引号,例如字符串 " \"hello\" ",使其变成 " "hello" "。由于文本很长,因此不可能删除反斜杠。感谢您的建议。 我认为应该是
string s= "\" teetete \"";
string t;
t = s.Replace("\"", @"""");
不清楚你想做什么,但听起来你有一个包含双引号字符的 XML 字符串(在调试器中显示为 \"
),你需要将其替换为 "
以便让 XML 解析器理解它。在这种情况下,简单调用 .Replace()
可能就足够了(尽管我想实际上可能需要使用更复杂的方法来解决一些边缘情况)。
这实际上并没有使用\"
进行编码。它只是一个字符串,其内容为" teetete "
。为了显示或编译该字符串,您必须转义引号,这就是为什么您有:
string s = "\" teetete \"";
\"
,实际上看起来像这样:
string s = "\\\" teetete \\\"";
\\
代表一个字面上的 \
,\"
代表一个字面上的 "
。如果你想要替换 那个字符,那么几乎就是你写的内容了:string t = s.Replace("\\\"", "\"");
这将把字符串中的任何\"
转换为"
,我猜这实际上是你想要的,除非你要将其打印到一些VB.NET代码中,在这种情况下,"\"\""
更合适。
string s = "\\\" teetete \\\"";
- Tim Schmelter