- - PR -
改行を含んだ置換
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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が表示されてしまいます 改行を入れるには正規表現でどのように記述すればよいのでしょうか? お願いいたします |
|
投稿日時: 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 17:13
すいません。できました
ue様のコードがヒントになりました どうやら単純なミスだったようです 実際のコードのほうで strReplace = "abc$1\r\n"; の"abc$1\r\n"の部分をテキストボックスから取得していたため strReplace = @"abc$1\r\n"; と解釈されていたようです。 テキストボックスをMultiLine=trueにすることで解決できました ありがとうございました |
1