C#でテキストファイル内の特定の文字列を正規表現で置き換えるプログラム

C# コンピュータ
C#

ソースコード

using System.Text.RegularExpressions;

const string srcFile = @".\sample.txt";
const string dstFile = @".\result.txt";

List<string> lines = [];

// 読み込み
using StreamReader sr = new (srcFile);
string? buff;
while((buff = sr.ReadLine()) != null)
{
    if (buff != null)
        lines.Add(buff);
}

// 置き換え
for(int i=0; i < lines.Count; i++)
{
    string line = lines[i];
    // マッチする部分を置き換える。
    line = Regex.Replace(line, "[A-C]+", "「$&」");
    // マッチする部分を削除する。
    line = Regex.Replace(line, "[2-5]+", "");
    // マッチした()で囲まれたグループを置き換える
    line = Regex.Replace(line, "(.+語)", "$1話者");
    lines[i] = line;
}

// 書き込み
using StreamWriter sw = new (dstFile, false);    // 上書き
foreach(string line in lines)
{
    sw.WriteLine(line);
}

置き換え前:samole.txt

ABCDE
1234
日本語。
日本語ABCDE1234日本語12345

置き換え後:result.txt

「ABC」DE
1
日本語話者。
日本語「ABC」DE1日本語話者1

オプション

RegexOptions.IgnoreCase
大文字小文字を区別しない

RegexOptions.Multiline
複数行モード

コメント