我有这样的问题: 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);
这似乎工作正常,但你能建议一个不那么详细的解决方案吗? 提前致谢
答案 0 :(得分:0)
Regex regex = new Regex(@"\p{C}+");
string strWithPrintableChars = string.Join('\n'.ToString(),
foo.Split('\n').Select(line => regex.Replace(line, "")));
说明: