如何在 C# 中删除 space、逗号或类似的非 ASCII 字符?

How to remove space, comma or similar non-ASCI character in c#?

我想从字符串中删除 space、逗号或类似的非 ASCI 字符,但我没有。

我试过这些但没用。

 // my string value = request.ReportName
    Regex.Replace(request.ReportName, @"[^\u0000-\u007F]+", string.Empty);
    Regex.Replace(request.ReportName, @"[^\uxxxx\u0000-\u007F]", string.Empty),

顺便说一句,我也试过了,但效果不佳。

System.Text.Encoding.ASCII.GetString(System.Text.Encoding.ASCII.GetBytes(request.ReportName));

例如:request.ReportName = "CAption, For long Text double length long to keep"

我想要这个:CAptionForlongTextdoublelengthlongtokeep。我能怎么做 ? 有什么想法吗

您可以使用正则表达式来替换所有非字母:

Regex.Replace(request.ReportName, @"[^A-Za-z]+", String.Empty);

做同样事情的另一个想法是

Regex MyRegex = new Regex("[^A-Za-z]", RegexOptions.IgnoreCase);
string s = MyRegex.Replace(request.ReportName, @"");

这也可能对您有所帮助

new String(request.ReportName.Where(c => Char.IsLetter(c) && Char.IsUpper(c)).ToArray());

如果您只想允许字母数字字符,下面的正则表达式将起作用。

string str = "sffd%^#$%#(*(&$HHFFGF14388>?><>< sfsdf,dsfsdf, fsasdfs,sdff  ,sdfsf-";
Regex rgx = new Regex("[^a-zA-Z0-9]");
str = rgx.Replace(str, "");

如果只允许使用字母,那么您可以使用下面的正则表达式。

Regex rgx = new Regex("[^a-zA-Z]");