週末は個人的なプロジェクトに取り組んでいましたが、ここで立ち往生しました。基本的に回す必要がある
[0;37m[33m o0=============================~o[0]o~======」 ========================0o
の中へ
o0============================~o[0]o~=========== ==================0o (このテキストのみが黄色になります)
ココアの正規表現機能を使用して、「[0;」、「37m」、「[33m」を個別に見つけてキャプチャすることができました。「0;」以前のテキスト スタイルを削除し、黒の背景と白のテキストである既定値に戻すことをサーバーが望んでいることを示します。「37m」は、サーバーがテキストを白くしたいことを示しています (なぜこれがここにあるのかわかりませんが、これはサーバーが送信するものです)。最後の「33m」は、サーバーがテキストを黄色にしたいことを示しています。私のコードは、文字列で要求された色の変更を正しく検出、削除、および識別しますが、作成した NSAttributedString にこれらの色を適用するのに問題があります。正規表現検索によって提供される範囲は、最終的な文字列の色のシーケンスを取り除くと無効になります。ストリップされた文字列のどこに色の変更を適用する必要があるかを把握する効果的な方法は何ですか? この例では、すべてのカラー コードが最初に指定されていますが、それ以外の場合は、カラー コードが中間にあり、文字列の色が途中で変わる可能性があります。NSAttributedString は、要求された色を割り当てる適切な範囲を把握できれば、これを処理できます。