繁体   English   中英

C#正则表达式替换

[英]C# Regex Replace

我有一个文件应该是\\ n \\ n分隔,但当然不是。 某些行在\\ n \\ n之后包含空格。 如何找到\\ n \\ n之后的所有空格,该行以新行开头但在其他任何字符之前。

样品:

\n\nData,Mo re,Data
\n\n    Some,Li st,Of
\n\n\nOther,St uff
\n\n\n\n  This is another 

期望的输出

\n\nData,Mo re,Data
\n\nSome,Li st,Of
\n\nOther,St uff
\n\nThis is another 

正则表达可能是答案,但我仍在学习正则表达式。 这或多或少是我想出的Regex.Replace(input,"^(\\n{2,}\\s*)", "\\n\\n")但它不起作用。

编辑:我应该注意,在需要此代码之前,我已将各种不同的换行符编码预先转换为\\n

反斜杠字符需要转义。 尝试:

 Regex.Replace(input,"^(\n{2,}\\s*)", "\n\n")

另外,您应该考虑将\\\\s*更改为\\\\s+这样就不必不必要地替换有效的行开头。

        string test = "\n\nData,Mo re,Data \r\n\n\n    Some,Li st,Of \r\n\n\n\nOther,St uff \r\n\n\n\n\n  This is another  \r\n";
        string pattern = "^\n{2,}\\s*";
        string result = Regex.Replace(test, pattern, "\n\n", RegexOptions.Multiline);

首先,您需要Multiline选项。 其次,您的数据看起来如何? 请注意,在您有可见的cr-lf的地方,我输入了\\ r \\ n。 我这样做是因为您说的是在分隔数据的行的开头是\\ n \\ n。 \\ n令人困惑,因此请确保您的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM