如何删除除换行符之外的控制字符?(C#)

Dev*_*505 4 c# string replace

我使用此代码从字符串中删除不可打印的字符,但我不想从字符串中删除换行符 (\n)。这是我现在使用的代码。

Regex.Replace(value, @"\p{C}+", string.Empty)
Run Code Online (Sandbox Code Playgroud)

我不知道正则表达式。我在互联网上找到了这段代码。它有效,但它也删除了新的行控制字符。我想知道我怎样才能做我想做的事。(正则表达式不是强制性的)

The*_*ird 8

您可以使用否定字符类 [^来排除匹配换行符并使用\P{C}来匹配相反的\p{C}

[^\P{C}\n]+
Run Code Online (Sandbox Code Playgroud)

.NET 正则表达式演示 (单击“上下文”选项卡)

例如

Regex.Replace(value, @"[^\P{C}\n]+", string.Empty)
Run Code Online (Sandbox Code Playgroud)