- PR -

改行を含んだ置換

1
投稿者投稿内容
くらっち
会議室デビュー日: 2006/01/05
投稿数: 4
投稿日時: 2006-01-05 14:56
倉田と申します
改行を含んだ置換を行いたいのですがうまくいきません。
行き詰ってしまいました


ソースコードは単純にabc+数字の文字列の後に改行を入れるものです
//C#
StreamReader sr = new StreamReader(loadFileName);
StreamWriter sw = new StreamWriter(saveFileName,true);
string strFind = "abc(\d+)";
string strReplace = "abc$1\r\n"; //ここが分かりません
sw.Write(Regex.Replace(sr.ReadToEnd(),strFind,strReplace);
sw.Flush();
sr.Close();
sw.Close();

置換後のファイルにはそのまま\r\nが表示されてしまいます
改行を入れるには正規表現でどのように記述すればよいのでしょうか?
お願いいたします
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-01-05 15:50
こんにちは。
倉田さんのコード実行すると、手元の環境では改行の入ったテキストファイルが得られます。

StreamReader sr = new StreamReader(@"c:\In.txt");
StreamWriter sw = new StreamWriter(@"c:\Out.txt",true);
string strFind = @"abc(\d+)";
string strReplace = "abc$1\r\n"; //ここが分かりません
sw.Write(Regex.Replace(sr.ReadToEnd(),strFind,strReplace));
sw.Flush();
sr.Close();
sw.Close();

結果
---In.txt---
abc000aaa111abc0123xx

---Out.txt---
abc000
aaa111abc0123
xx
くらっち
会議室デビュー日: 2006/01/05
投稿数: 4
投稿日時: 2006-01-05 17:13
すいません。できました
ue様のコードがヒントになりました
どうやら単純なミスだったようです

実際のコードのほうで
strReplace = "abc$1\r\n";
の"abc$1\r\n"の部分をテキストボックスから取得していたため
strReplace = @"abc$1\r\n";
と解釈されていたようです。

テキストボックスをMultiLine=trueにすることで解決できました
ありがとうございました
1

スキルアップ/キャリアアップ(JOB@IT)