在C#中替换字符串中的符号

时间:2011-03-02 17:16:33

标签: c# regex

我们如何在C#中用字符串替换符号?

喜欢这个

输入:"�Click me."

输出:"Click me.";

3 个答案:

答案 0 :(得分:7)

一个简单的解决方案是从字符串中删除所有非ASCII字符。 this question有几种方法可以做到这一点,最简单的方法可能是:

string s = "�Click me.";
s = Regex.Replace(s, @"[^\u0000-\u007F]", "");

虽然如上所述,这可能是编码/代码页问题 - 在这里使用正则表达式可能不一定是合适的解决方案。

编辑:根据您的评论,您可以尝试以下其他几种模式:

删除所有非ASCII字符和ASCII控制字符:

s = Regex.Replace(s, @"[^\u0020-\u007F]", "");

删除除字母数字ASCII字符以外的所有内容:

s = Regex.Replace(s, @"[^A-Za-z0-9]", "");

答案 1 :(得分:2)

var output = input.Replace("�","");

Simples!

答案 2 :(得分:2)

您还可以使用unicode块名称:

source = Regex.Replace(source , @"\p{name}", "");

可以在this article.中找到名单列表。我不确定你的角色属于哪个区块。