C#Regex - 删除额外的空格但保留新行

Yar*_*evi 6 c# regex whitespace newline

我正在使用这个正则表达式:

Regex.Replace(value.Trim(), @"\s+", " ");
Run Code Online (Sandbox Code Playgroud)

修剪并将额外空间减少到一个空间.
问题是它还从文本中删除了新行.

如何修复正则表达式以保持新行?

小智 16

[^\S\r\n]+在空白类中排除CRLF .
[^]是一个消极的阶级.\S是等于负类 [ space, tab, ff, lf, cr ]

关于否定类的事情是它从组中分解出来并分别应用于组中的每个成员
.和数学两个负相等的积极.

不是whitespace = [^\S]=[\s]

但是,负面条件适用于下一个课程项目以及下一个课程...

因此,现在包含空格,您可以从类中排除特定的空白项.
[^\S\r\n]表示除CR或LF之外的所有空格.


Dav*_*d E 6

尚未设法在C#中进行测试,但以下内容适用于http://www.regexr.com/:

Regex.Replace(value.Trim(), @"[^\S\r\n]+", " ");
Run Code Online (Sandbox Code Playgroud)

积分是匹配空格而不是换行符

正则表达式通过匹配非空格或返回/换行的否定字符类来工作.