我有几个文本文件,我想在文本之间有很多换行符,但是文本之间没有换行符号的格式,例如:
Text
Some text
More text
More
more
所以我想改变换行量大于X到Y的位置,所以让我们说,当有5个连续的换行符时它变为2,10则变为3。
我目前的问题是我不知道应该如何确定哪些行需要规范化。
我知道我可以使用split计算新行,以及其他方法,例如验证行是否为空等等......但也许有一个简单的正则表达式或更好的方法来解决这个问题?
答案 0 :(得分: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;
}
答案 1 :(得分: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");