如何从字符串中删除非ascii - c#

时间:2016-12-06 18:41:36

标签: c# regex emoji

我想从字符串中删除表情符号,但它不起作用

string str = "Hello world ☀⛿"; 
string result = Regex.Replace(str, @"\p{Cs}", "");

1 个答案:

答案 0 :(得分:4)

我比较了我发现/想到的几个选项:

string text = "Hello world ☀⛿END";

Console.WriteLine(text);
Console.WriteLine(Regex.Replace(text, @"\p{Cs}", ""));
Console.WriteLine(Regex.Replace(text, @"[^\u0000-\u007F]+", ""));
Console.WriteLine(text.Where(c => !Char.IsSurrogate(c)).ToArray());

这就是结果:

Hello world ??????END
Hello world ??END
Hello world END
Hello world ??END

我不确定您的输入字符串在复制,粘贴到此处,再次复制并粘贴到Visual Studio中后是否会在此过程中进行一些修改,但从我看到的情况来看,显然第二个选项看起来效果更好。

是否要删除所有特殊字符或仅表情符号