私はVisual Studio 2015、C#、WPF、XAMLを使用しています。RichTextBoxからDouble LineBreakを文字列に取り除く
RichTextBox
からstring
にテキストをコピーし、LineBreaks
を削除します。
LineBreak
は、Shift
+ Enter
を押すと発生します。ただEnter
はDouble LineBreak
となります。
Double LineBreak
の後のテキストは、TextRange
から切り捨てられ、string
にコピーされます。
Double LineBreak
とはなんですか?それを削除するにはどうすればよいですか?
XAML
<RichTextBox x:Name="rtbMessage" Margin="10,10,10,50" />
C#
Paragraph p = new Paragraph();
// Get RichTextBox TextRange Method
//
public String MessageRichTextBox()
{
rtbMessage.Document = new FlowDocument(p);
TextRange textRange = new TextRange(
rtbMessage.Document.ContentStart,
rtbMessage.Document.ContentEnd
);
return textRange.Text;
}
// RichTextBox to String
// Remove LineBreaks
//
string message = MessageRichTextBox().Replace(Environment.NewLine, "");
私が試してみました
除去:
https://stackoverflow.com/a/6750310/6806643
Regex.Replace(MessageRichTextBox(), @"[\u000A\u000B\u000C\u000D\u2028\u2029\u0085]+", string.Empty);
.Replace(Environment.NewLine, "")
.Replace("\n", "")
.Replace("\r\n", "")
.Replace("\u2028", "")
.Replace("\u000A", "")
.Replace("\u000B", "")
.Replace("\u000C", "")
.Replace("\u000D", "")
.Replace("\u0085", "")
.Replace("\u2028", "")
.Replace("\u2029", "")