[ad_1]
みなさん、こんにちは。
ユーザーがパッセージを入力するリッチテキストボックスがありますが、ユーザーが複数入力すると (\n\n\n)、それを単一の \n に置き換えたいのですが、これがどのように可能かわかりません。
ラムダ式を使用して複数のスペースを単一のスペースに置き換えました
var list = rtxtTypeing.Text.Split(‘ ‘).Where(s => !string.IsNullOrWhiteSpace(s));
rtxtTypeing.Text = string.Join(” “, リスト);
複数の \n\n\n を単一の入力に置き換えるために使用したいのと同じもの \n
var list3 = rtxtTypeing.Text.Split(‘\n’).Where(s => !string.IsNullOrWhiteSpace(s));
rtxtTypeing.Text = string.Join(“\n”, list3);
しかし、それは機能していません。
私が間違っているところを助けてください。
ありがとう
ラム・クマール
解決策 1
あなたは使用することができます 正規表現[^].
richTextBox1 と richTextBox2 の 2 つのリッチテキスト ボックスと、ボタンがあるとします。
ボタンクリックイベントで、これを追加します:
string txt1 = richTextBox1.Text; var pattern = "(\\n){2,}"; var replacePattern = "\n"; richTextBox2.Text = Regex.Replace(txt1, pattern, replacePattern, RegexOptions.IgnoreCase);
解決策 2
Windows では、改行は \r\n
– CRLF
しかし、Unix ベースのシステムでは、改行は \n
– LF
. それはあなたが交換する必要があるものの1つかもしれません。
Windows は、プログラムが実行されているプラットフォームの改行形式を保持します System.Environment.NewLine
そして、正規表現を使用してもかまわない場合。 このように、両方のプラットフォームで単一のパスで複数の行を削除できます
string formatted = Regex.Replace(rtxtTypeing.Text, @"(?:\r\n|\r(?!\n)|(?!<\r)\n){2,}", System.Environment.NewLine);
解決策 3
あなたはこれを試すことができます、それは私のために働いた.
RichTextBox1.Rtf=RichTextBox1.Rtf.Replace(“\\\\n”, @”\line”);
[ad_2]
コメント