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