C# 在RichTextBox中格式化rtf/unicode/utf-8的最简单方法?

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

我现在正试图弄明白这一点。但长话短说,我想将2 UTF-8'\u0002'之间的字符串转换为粗体格式。这是一个IRC客户端,我正在工作,所以我已经运行到这些相当多。我用treid regex,发现rtf as(\'02)上的匹配可以捕获它,但我不确定如何匹配最后一个字符并将其更改为\bclear或任何rtf格式关闭的字符

我无法准确地粘贴我试图解析的文本,因为这些字符会从帖子中过滤出来。但是当查看char值时,它的int值为2

下面尝试粘贴有问题的文本:

[02:34]测试

你可以用任何一个

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;
}