C# 删除C变体中的单个反斜杠#

C# 删除C变体中的单个反斜杠#,c#,string,escaping,C#,String,Escaping,我试图从我的变体中删除一个反斜杠。但不幸的是,我不知道为什么它不起作用。请帮忙复习一下 string s = "此检查项己被你忽略,请联系医生。\u2028内科"; string us= s.Replace(@"\","dddd"); Console.Write(us); 我错过什么了吗?谢谢 斜杠是转义字符,而不是文字字符“\” 如果您想在安装前移除零件內科, 你能行 string us = s.Replace("\u2028", string.Empty); 请注意,与您评论中的版本相

我试图从我的变体中删除一个反斜杠。但不幸的是,我不知道为什么它不起作用。请帮忙复习一下

string s = "此检查项己被你忽略,请联系医生。\u2028内科";
string us= s.Replace(@"\","dddd");
Console.Write(us);
我错过什么了吗?谢谢


斜杠是转义字符,而不是文字字符“\”

如果您想在安装前移除零件內科, 你能行

string us = s.Replace("\u2028", string.Empty);
请注意,与您评论中的版本相比,没有@。@在C#中,字符串前面表示它是逐字逐句字符串,这意味着它将忽略字符串中的所有转义序列

有关更多信息,请查看以下链接: ,

编辑:如果要删除所有Unicode字符(这就是\uxxx),它会有点复杂,您需要类似Regex的东西。添加使用

using System.Text.RegularExpressions; 
并将“替换”从上面更改为

string us = Regex.Replace(s, @"[^\u0000-\u007F]", String.Empty);
基本上,它使用模式匹配来搜索unicode字符并替换它


该斜杠是转义字符而不是文字字符“\”的链接

如果您想在安装前移除零件內科, 你能行

string us = s.Replace("\u2028", string.Empty);
请注意,与您评论中的版本相比,没有@。@在C#中,字符串前面表示它是逐字逐句字符串,这意味着它将忽略字符串中的所有转义序列

有关更多信息,请查看以下链接: ,

编辑:如果要删除所有Unicode字符(这就是\uxxx),它会有点复杂,您需要类似Regex的东西。添加使用

using System.Text.RegularExpressions; 
并将“替换”从上面更改为

string us = Regex.Replace(s, @"[^\u0000-\u007F]", String.Empty);
基本上,它使用模式匹配来搜索unicode字符并替换它



此特定字符串中的反斜杠是字符串中的Unicode字符。运行时未将其识别为反斜杠。此反斜杠是符号的一部分,如果我只想从字符串中删除这些Unicode字符,则实际上不是反斜杠。我该怎么办?谢谢。@chetanranpariyas意味着删除整个转义序列:“\u2028”我尝试了
string us=s.Replace(@“\u2028”,string.Empty)。但它不起作用。您在这个特定字符串中看到的反斜杠是字符串中的Unicode字符。运行时未将其识别为反斜杠。此反斜杠是符号的一部分,如果我只想从字符串中删除这些Unicode字符,则实际上不是反斜杠。我该怎么办?谢谢。@chetanranpariyas意味着删除整个转义序列:“\u2028”我尝试了
string us=s.Replace(@“\u2028”,string.Empty)。但它不起作用。谢谢你的回答。如果我想删除所有
\uxxx
字符怎么办?谢谢你的回答。代码
Regex.Replace(s,@“[^\u0000-\u007F]”,String.Empty)将删除所有字符。为什么?哦,我没有提前意识到。我很傻。所有中文单词都是unicode编码的。在我自己的测试中,我用英语测试了它,用一个\uxxx。嗯,我真是不知所措,除了在所有你想删除的文件中手工编码。u2028是一个计算机不知道如何渲染的字符,这就是为什么它显示为那样而不是中文字符。@Joe.wang我在另一篇文章(这里是jdweng)中告诉过你,你可以使用
WebUtility.HtmlDecode()
。由于其重载使用Textwriter,最终文本中不会有任何Unicode符号。您可以这样做:
TextWriter\u writer=newstreamwriter([Output],false,Encoding.Unicode);HtmlDecode([Input],_writer)_writer.Flush()_writer.Dispose()谢谢你的回答。如果我想删除所有
\uxxx
字符怎么办?谢谢你的回答。代码
Regex.Replace(s,@“[^\u0000-\u007F]”,String.Empty)将删除所有字符。为什么?哦,我没有提前意识到。我很傻。所有中文单词都是unicode编码的。在我自己的测试中,我用英语测试了它,用一个\uxxx。嗯,我真是不知所措,除了在所有你想删除的文件中手工编码。u2028是一个计算机不知道如何渲染的字符,这就是为什么它显示为那样而不是中文字符。@Joe.wang我在另一篇文章(这里是jdweng)中告诉过你,你可以使用
WebUtility.HtmlDecode()
。由于其重载使用Textwriter,最终文本中不会有任何Unicode符号。您可以这样做:
TextWriter\u writer=newstreamwriter([Output],false,Encoding.Unicode);HtmlDecode([Input],_writer)_writer.Flush()_writer.Dispose()