【C#】テキストファイル内の正規表現にマッチする文字列を置換して別ファイルに保存

C#

正規表現を使用してファイルを加工する、といったことは良くある処理だと思います。この記事では、正規表現によるファイル加工を簡単な例で紹介します。

サンプルコード

小文字の”sample”を大文字の”SAMPLE”に置換する例です。正規表現の置換には Regex.Replace() を使用します。

using System;
using System.IO;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        // 入力ファイルのパス
        string inputFilePath = @"C:\path\to\your\file.txt";
        // 出力ファイルのパス
        string outputFilePath = @"C:\path\to\your\output.txt";
        // 置換するための正規表現パターン
        string pattern = @"sample";
        // 置換後のテキスト
        string replacement = @"SAMPLE";

        try
        {
            // 入力ファイルを開く
            using (StreamReader reader = new StreamReader(inputFilePath))
            {
                // 出力ファイルを開く
                using (StreamWriter writer = new StreamWriter(outputFilePath))
                {
                    string line;
                    // ファイルの終わりまで行ごとに読み込む
                    while ((line = reader.ReadLine()) != null)
                    {
                        // 各行を正規表現で置換
                        string replacedLine = Regex.Replace(line, pattern, replacement);
                        // 置換後の行を出力ファイルに書き込む
                        writer.WriteLine(replacedLine);
                    }
                }
            }
            // 処理完了のメッセージを表示
            Console.WriteLine("ファイルの処理が完了しました。");
        }
        catch (Exception ex)
        {
            // エラー発生時のメッセージを表示
            Console.WriteLine("エラーが発生しました: " + ex.Message);
        }
    }
}

入力ファイル

Hello, this is a sample text file.
It contains various lines of text.
Some lines might contain numbers like 12345.
Others might have special characters like @ or #.
This line includes the word 'sample'.
Another line with the word 'text'.
Regular expressions are powerful.
Simple string search is also useful.

出力ファイル(小文字の”sample”が大文字の”SAMPLE”に置換されている)

Hello, this is a SAMPLE text file.
It contains various lines of text.
Some lines might contain numbers like 12345.
Others might have special characters like @ or #.
This line includes the word 'SAMPLE'.
Another line with the word 'text'.
Regular expressions are powerful.
Simple string search is also useful.
タイトルとURLをコピーしました