🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

Q&A

解決済

3回答

8405閲覧

改行コード「\r\n」としたいのに「\r\n」となっている

Leizi

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

1グッド

0クリップ

投稿2019/11/22 07:57

###前提・実現したいこと
こんにちは。
「\r\n」で置換したいのですが、どうすればよろしいでしょうか。

###事象

正規表現で文字を置換する機能で改行コード「\r\n」としたいのに、デバッグ上では「\r\n」と表示されているせいか、リプレイスしても改行されません。

例)
「aaa<br>bbb<br>ccc」という文字列の「<br>」を改行コードに置換

イメージ説明

var replaceString = "\n\r";

デバッグモードで「replaceString」 をみると下記の画像の様に
イメージ説明

var text = Regex.Replace("aaa<br>bbb<br>ccc", "<br>", replaceString);

そのまま置換されると下記の図のようになり、改行出来ていない状態

イメージ説明

###補足情報(言語/FW/ツール等のバージョンなど)
環境はVisualStudio2017 C# .Net Fw4.6.2でWindowsFormを使用しています。

TN8001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

単純に考えれば、こうでしょうか。

cs

1var replaceString = textBox2.Text; 2replaceString = replaceString.Replace("\\r", "\r").Replace("\\n", "\n"); 3var text = Regex.Replace("aaa<br>bbb<br>ccc", "<br>", replaceString);

これも同じ結果になりますが、Unescapeはかなり広範囲に置き換えますのでどちらが良いのかは要件次第です。

cs

1var replaceString = textBox2.Text; 2replaceString = Regex.Unescape(replaceString); 3var text = Regex.Replace("aaa<br>bbb<br>ccc", "<br>", replaceString);

Regex.Unescape(String) メソッド (System.Text.RegularExpressions) | Microsoft Docs

投稿2019/11/22 11:02

編集2023/07/17 04:43
TN8001

総合スコア9855

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Leizi

2019/11/22 12:09

求めていた回答ズバりでした。 Regex.Unescapeというメソッドがあるんですね助かりました。 ありがとうございます!
guest

0

そりゃそうです。
テキストボックスに入力した「\r\n」は、見た目通りの4つの文字ですから、それに置き換わるのは仕様通りです。

もし改行に置き換えたいのでしたら、
例えば置換後のテキストボックスに改行を許可し、改行のみ入力させて実行する、といった方法が考えられます。

よく使うエディタ(Visual Studioでもいいいです)が、置換後に改行するのにどういう手法を使っているかを調べてみるのも良いでしょう。

投稿2019/11/22 08:21

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そのまま置換されると下記の図のようになり、改行出来ていない状態

そのままコードをコピペして試してみましたが、そうはなりません。Visual Studio Community 2015, .NET 4.6.1 のコンソールアプリです。何が違うのでしょうね。

イメージ説明

投稿2019/11/22 08:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問