1

私は現在、これを理解しようとして壁に頭をぶつけています。しかし、簡単に言えば、2 UTF-8 '\u0002' の間の文字列を太字の書式に変換したいと思います。これは私が取り組んでいる IRC クライアントのためのものなので、かなりの頻度でこれらに遭遇しています。私は正規表現を試してみましたが、((\'02) としての rtf でのマッチングがそれをキャッチするために機能することがわかりましたが、最後の文字を一致させて \bclear または rtf フォーマットの close に変更する方法がわかりません。

文字が投稿から除外されるため、解析しようとしているテキストを正確に貼り付けることができません。しかし、char 値を見ると、2 の int です。

問題のあるテキストを貼り付けようとする試みは次のとおりです。

[02:34] テスト テスト

4

2 に答える 2

1

あなたはどちらかを使うことができます

rtb.Rtf = Regex.Replace(rtb.Rtf, @"\\'02\s*(.*?)\s*\\'02", @"\b $1 \b0");

また

rtb.Rtf = Regex.Replace(rtb.Rtf, @"\\'02\s*(.*?)\s*\\'02", @"\'02 \b $1 \b0 \'02");

そこに\u0002sを保持するかどうかによって異なります。

\bと\b0は、RTFで太字のオンとオフを切り替えます。

于 2009-02-09T20:58:40.190 に答える
0

テストケースはありませんが、ClipboardクラスのGetTextメソッドUnicodeTextDataFormatで使用することもできます。基本的に、入力をクリップボードに配置して、別の形式で取得できると思います(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;
}

もちろん、そうすると、おそらくクリップボードにあったものを保存して復元したくなるでしょう。そうしないと、ユーザーを怒らせるかもしれません!

于 2013-07-24T20:44:57.670 に答える