如何在c#中删除空格,逗号或类似的非ascii字符

本文关键字:字符 ascii 删除 空格 | 更新日期: 2023-09-27 18:15:01

我想从字符串中删除空格,逗号或类似的非ascii字符,但我没有。

我试了这些,但不工作。

 // 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双长度的long to keep"

我想这样做:CAptionForlongTextdoublelengthlongtokeep。我能做什么?有什么想法吗?

如何在c#中删除空格,逗号或类似的非ascii字符

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

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());

如果你想只允许字母数字字符,下面的Regex将工作。

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]");