C# 在RichTextBox中格式化rtf/unicode/utf-8的最简单方法?
我现在正试图弄明白这一点。但长话短说,我想将2 UTF-8'\u0002'之间的字符串转换为粗体格式。这是一个IRC客户端,我正在工作,所以我已经运行到这些相当多。我用treid regex,发现rtf as(\'02)上的匹配可以捕获它,但我不确定如何匹配最后一个字符并将其更改为\bclear或任何rtf格式关闭的字符 我无法准确地粘贴我试图解析的文本,因为这些字符会从帖子中过滤出来。但是当查看char值时,它的int值为2 下面尝试粘贴有问题的文本: [02:34]测试 你可以用任何一个C# 在RichTextBox中格式化rtf/unicode/utf-8的最简单方法?,c#,winforms,utf-8,richtextbox,rtf,C#,Winforms,Utf 8,Richtextbox,Rtf,我现在正试图弄明白这一点。但长话短说,我想将2 UTF-8'\u0002'之间的字符串转换为粗体格式。这是一个IRC客户端,我正在工作,所以我已经运行到这些相当多。我用treid regex,发现rtf as(\'02)上的匹配可以捕获它,但我不确定如何匹配最后一个字符并将其更改为\bclear或任何rtf格式关闭的字符 我无法准确地粘贴我试图解析的文本,因为这些字符会从帖子中过滤出来。但是当查看char值时,它的int值为2 下面尝试粘贴有问题的文本: [02:34]测试 你可以用任何一个 r
rtb.Rtf = Regex.Replace(rtb.Rtf, @"\\'02\s*(.*?)\s*\\'02", @"\b $1 \b0");
或
取决于是否要将\u0002保留在其中
\b和\b0在RTF中打开和关闭粗体。您可以使用
rtb.Rtf = Regex.Replace(rtb.Rtf, @"\\'02\s*(.*?)\s*\\'02", @"\b $1 \b0");
或
取决于是否要将\u0002保留在其中
\b和\b0在RTF中打开和关闭粗体。我没有测试用例,但您也可以将
剪贴板
类与一起使用。基本上,我认为您可以将输入放在剪贴板中,并以不同的格式将其输出(适用于RTF等)。下面是MS的演示代码(不直接适用,但演示了API):
当然,如果您这样做,您可能希望保存和恢复剪贴板中的内容,否则您可能会让您的用户感到不安!我没有测试用例,但您也可以将
剪贴板
类与一起使用。基本上,我认为您可以将输入放在剪贴板中,并以不同的格式将其取出(适用于RTF等)。以下是MS的演示代码(不直接适用,但演示了API):
当然,如果您这样做,您可能希望保存并恢复剪贴板中的内容,否则您可能会让用户感到不安。粘贴字符并将其格式化为代码样本我已经尝试过了,它会将它们格式化为任何形式。粘贴字符并将其格式化为代码样本我已经尝试过了,它会将它们格式化为任何形式。
// Demonstrates SetText, ContainsText, and GetText.
public String SwapClipboardHtmlText(String replacementHtmlText)
{
String returnHtmlText = null;
if (Clipboard.ContainsText(TextDataFormat.Html))
{
returnHtmlText = Clipboard.GetText(TextDataFormat.Html);
Clipboard.SetText(replacementHtmlText, TextDataFormat.Html);
}
return returnHtmlText;
}