2011-05-29 89 views
1

我花了週末的時間在一個個人項目上工作,並陷入困境。基本上我需要打拼錯ansi顏色代碼有困難

[0; 37m [33m o0 ==============================〜o [ 0] O〜============================== 0O

O0 ===== =========================〜問題o [0] O〜================== ============ 0o(只有這個文本現在是黃色)

使用可可的正則表達式功能,我能夠找到並捕獲「[0;」,「37m」和「 [33米「單獨。 「0」;表示服務器希望任何以前的文本樣式被刪除並返回默認的黑色背景和白色文本。 「37m」表示服務器希望文本的顏色爲白色(不確定爲什麼在這裏,但這是服務器發送的內容)。最後的「33m」表示服務器希望文本顯示爲黃色。我的代碼正確地查找,去掉並識別字符串中所請求的顏色更改,但是我無法將這些顏色應用於創建的NSAttributedString。一旦我去掉最終字符串中的顏色序列,正則表達式搜索提供的範圍不再有效,那麼找出顏色變化應該應用於剝離字符串的有效方法是什麼?在這個例子中,所有的顏色代碼都是在開始時提供的,但是在其他情況下,顏色代碼可能在中間,導致字符串在中線改變顏色。 NSAttributedString可以處理這個,如果我能找出適當的範圍來分配所需的顏色。

+0

你不能只處理依次對每個CSI序列? – 2011-05-29 23:26:10

+0

我回答了我自己的問題。不知道如何關閉這個問題,但它不再有效。一旦我完成工作,我將發佈最終結果。 – 2011-05-31 04:33:17

+0

@Samuel:發佈下面的答案並接受它。應該這樣做。 – 2011-07-15 12:23:00

回答