gpt4 book ai didi

c# - 正则表达式以匹配所有多余的和尾随的换行符

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:05 25 4
gpt4 key购买 nike

我试图找到一个与 C# 兼容的正则表达式来匹配所有多余的换行符——包括空行/空白行——允许替换:

first line    second linethird line

喜欢:

first line    second linethird line

没有任何尾随换行符。

知名多行^\s*$ 匹配最后一个换行符。

我能够想出 (?<!\S+)\r\n|(\r\n)+\z 其中:

  1. 在单行和多行模式下都能工作
  2. 很丑而且可能很慢

有没有人能想出一个简单正则表达式来做同样的事情?

最佳答案

这样做的原因是,如果最后一行没有任何内容,则 $ 匹配字符串末尾的 \n 之前。

对于中间的空行

^\s*^

^ 匹配换行符 \n 之后。所以这匹配从一行开始到下一行的空格。

对于最后一个空行,需要匹配从最后一个换行符之前到字符串末尾的所有空格

$\s*\z

并结合

^\s*^|$\s*\z

\z 匹配必须出现在字符串的末尾

参见 Anchors on msdn

我的测试:

string s = "This is the first row\n\nThis is the third\n    \nThis the fifth\n";

string result = Regex.Replace(s, @"^\s*^|$\s*\z", "", RegexOptions.Multiline);
Console.WriteLine(result);

Console.WriteLine("fin");
Console.ReadLine();

关于c# - 正则表达式以匹配所有多余的和尾随的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12895592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com