2

我有几个文本文件,在我想规范化的文本之间有很多换行符,但是文本之间的换行符没有模式,例如:

Text




Some text








More text




More

more

所以我想改变换行符的数量大于 X 到 Y 的地方所以让我们说,当有 5 个连续的换行符时,它变成 2,10 变成 3。

我目前的问题是我不知道我应该如何确定我必须规范化哪些行。

我知道我可以使用拆分来计算新行,以及其他方法,例如验证行是否为空等......但也许有一个简单的正则表达式或更好的方法来解决这个问题?

4

2 回答 2

1
List<string> Normalize(string fileName, int size)
{
    List<string> result = new List<string>();
    int blanks = 0;

    foreach (var line in File.ReadAllLines(fileName))
    {
        if (line.Trim() == "")
        {
            if (blanks++ < size)
                result.Add("");
        }
        else
        {
            blanks = 0;
            results.Add(line);
        }
    }
    return line;
}
于 2012-05-13T13:32:25.447 回答
0

这是一种方法

string sText = File.ReadAllText(@"c:\file.txt");
sText = removeLines(sText);

public string removeLines(string sData) {
            string[] sArray = sData.Split(sDelim, 
                                          StringSplitOptions.RemoveEmptyEntries);
            StringBuilder builder = new StringBuilder();
            foreach (string value in sArray)
            {
                builder.Append(value);
                builder.Append("\r\n");
            }
            return builder.ToString();
}

或使用正则表达式的单行:

string sText = File.ReadAllText(@"c:\file.txt");
sText = Regex.Replace(sText, "[\r\n]+", "\n");
于 2012-05-13T13:11:12.307 回答