正则表达式删除回车后跟空格

时间:2014-02-21 12:17:33

标签: c# regex

正则表达式相对较新,但希望有人能提供帮助。虽然我已经看到了大量关于如何删除某些字符或字符组合的示例,但我似乎无法让以下内容为我工作。

我有一个包含以下行的文件:

a b c
d
ef
 g h
i

我需要的是最终得到一个字符串,删除换行和空格的确切出现(并且只有那个),所以结果将是

a b c
d
efg h
i

现在我有

string contents = File.ReadAllText("input.text");
string result = Regex.Replace(contents,@"[\n \r]\ ","");
Console.WriteLine(result);

但只删除了g h行前面的空格,而不是将它与前一行组合。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

尝试使用:

string result = Regex.Replace(contents,@"(?s)(?:(?:\r|\n)+ +)","");

(?s)是利用单线模式。

答案 1 :(得分:0)

string text = Regex.Replace( contents, @"(\r|\n)+^ +", "" , RegexOptions.None | RegexOptions.Multiline );

我读作:

\ r或\ n的一个或多个匹配(新行字符) - > “(\ r | \ n)+”

后面是一行的开头 - > “^”

后跟一个或多个空格 - > “+”