我有一个大文本文件,最高可达+ 500MB),我需要替换特定字符串中出现的日期的所有出现。我正在使用正则表达式匹配日期,这很有效。我需要捕捉线号,匹配以及匹配发生的整行。我有那部分工作,这是我正在努力的替代部分。理想情况下,我想进行匹配,捕获额外的信息,并通过文件进行一次更换。我怎样才能有效地做到这一点?这就是我用来执行正则表达式。
while ((line = InputFile.ReadLine()) != null)
{
// Increment for each line read
x++;
// Try to match each line against the Regex.
Match m = reg.Match(line);
if (m.Success)
{
DateTime result;
if (!(DateTime.TryParse(m.Groups[0].Value, out result)))
{
// add it to the DT
MatchTable.Rows.Add(x, m.Groups[0].Value, line);
}
else if (DateTime.Parse(m.Groups[0].Value).Year <= 1753) // 1753 is the earliest date that can be stored in SQL datetime
{
// add it to the DT
MatchTable.Rows.Add(x, m.Groups[0].Value, line);
}
}
}
答案 0 :(得分:1)
我想我可能会修改第二个临时文件行,然后删除旧文件并在完成后重命名新文件。