Я провел выходные, работая над личным проектом, и застрял здесь. В общем, мне нужно повернуть
[0;37m[33m o0==============================~o[0]o~==============================0o
в
о0==============================~о[0]о~============ ==================0o (только этот текст теперь будет желтым)
Используя функцию регулярных выражений какао, я смог найти и зафиксировать «[0;», «37m» и «[33m» по отдельности. "0;" указывает на желание сервера, чтобы все предыдущие стили текста были удалены и возвращены к значениям по умолчанию, то есть к черному фону и белому тексту. «37m» означает, что сервер хотел бы, чтобы текст был окрашен в белый цвет (не уверен, почему это здесь, но это то, что сервер отправляет). Последнее «33m» указывает, что сервер хочет, чтобы текст был окрашен в желтый цвет. Мой код правильно находит, удаляет и идентифицирует запрошенные изменения цвета в строке, но у меня возникают проблемы с применением этих цветов к создаваемой NSAttributedString. Диапазоны, предоставленные при поиске регулярных выражений, перестают быть действительными, как только я удаляю последовательности цветов в окончательной строке, каков эффективный способ выяснить, где изменения цвета должны быть применены к лишенной строке? В этом примере все цветовые коды указаны в начале, но в других случаях цветовые коды могут быть в середине, чтобы строка менял цвет посередине строки. NSAttributedString может справиться с этим, если бы я мог определить правильные диапазоны для назначения запрошенных цветов.