C#中怎样用正则表达式去掉空行

我有一个配置文件,有一段是这样的:
RegExp:^>>>>>ConsoleStart:((\d{4})\-(\d{2})\-(\d{2})\s+(\d{2}):(\d{2}):(\d{2}))$
GroupNum:1
DataType:DateTime
Field:*.DateTime;

//IP接口表
RegExp:^((GE|Eth)\d/\d/\d+|Vlan\d+|Loop\d)\s+(UP|DOWN|ADM)\s+(UP\(s\)|UP|DOWN)\s+((\d+\.){3}\d+)(\s+(\S+)$|$)
GroupNum:1
DataType:string
Field:

GroupNum:3
DataType:enum
Field:
GroupNum:5
DataType:string
Field:
GroupNum:8
DataType:string
Field:
我将这个文件整体读入到下面的string中来:
StreamReader sr = new StreamReader(filepath)
string src = sr.ReadToEnd();
用Line这个正则表达式可以匹配一行到多行空行:
Regex Line = new Regex("(^\s{0,}$){1,}",RegexOptions.Multiline);

但是怎样将匹配到的空行全部去掉呢?

第1个回答  2014-12-18
不用正则.
str.Replace(" ","");//去掉空格
str.Replace("\r\n", "");//去掉换行追问

额……这种方法我知道……而且你这样替换的话,不是把空格都替换掉了吗?本来应该的换行也都不见了。整个字符串就一行了。就是想问用正则表达式怎么实现额……不过还是非常感谢啊……

追答

你怎么这么依赖正则.
不就是去掉空行吗.有什么难的.我上面给你的是让你参考,你要自己分析啊.
流中的换行是\r\n 你所谓的空行 不就是两个换行吗 即\r\n\r\n
那么
str.Replace("\r\n\r\n", "\r\n");
不就解决了.

第2个回答  2014-12-18
src = Regex.Replace(src, @"\n\s*\n", "\r\n");本回答被提问者采纳
相似回答