排除除新行之外的不可打印字符

时间:2017-10-06 14:29:40

标签: c# regex ascii

我有这样的问题: string filter: detect non-ASCII signs in C# 但我应该在字符串中排除所有不可打印的字符,但新行字符(\ n)除外。

从Regex选项开始:

foo = System.Text.RegularExpressions.Regex.Replace(foo, @"[^\u0020-\u007E]+", string.Empty);

我已经用这种方式修改了它:

foo = System.Text.RegularExpressions.Regex.Replace(foo, @"[\u0000-\u0009\u000B-\u000C\u000E-\u0019\u007F]+", string.Empty);

这似乎工作正常,但你能建议一个不那么详细的解决方案吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

Regex regex = new Regex(@"\p{C}+");    
string strWithPrintableChars = string.Join('\n'.ToString(),
                    foo.Split('\n').Select(line => regex.Replace(line, "")));

说明: