[英]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.