最大 +500MB の大きなテキスト ファイルがあります)、特定の文字列に出現する日付をすべて置き換える必要があります。日付を一致させるために正規表現を使用していますが、うまく機能します。行番号、一致、および一致が発生する行全体をキャプチャする必要があります。その部分は機能していますが、苦労しているのは交換部分です。理想的には、一致を確認し、追加情報を取得して、ファイルを 1 回移動するだけで置換を実行したいと考えています。これを効率的に行うにはどうすればよいですか?これは、正規表現を実行するために使用しているものです。
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);
}
}
}