ソースコード
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
複数行モード
  
  
  
  

コメント