Регулярные выражения - ваша самая чистая ставка на мой взгляд. Если вы не использовали их раньше, это хороший ресурс. Для получения полной информации о библиотеке регулярных выражений Python, перейдите по ссылке здесь .
import re
regex = re.compile("\x03(?:\d{1,2}(?:,\d{1,2})?)?", re.UNICODE)
Регулярное выражение ищет ^ C (то есть \ x03 в ASCII , вы можете подтвердить это, выполнив chr (3) в командной строке), а затем, при необходимости, ищет один или два [0-9 ], затем необязательно после запятой, а затем еще один или два [0-9] символа.
(?: ...) говорит, что нужно забыть о сохранении того, что было найдено в скобках (поскольку нам не нужно ссылаться на него), ? означает совпадение с 0 или 1 и {n, m} означает совпадение n с m предыдущей группировки. Наконец, \ d означает совпадение [0-9].
Остальные можно расшифровать, используя ссылки, на которые я ссылаюсь выше.
>>> regex.sub("", "blabla \x035,12to be colored text and background\x03 blabla")
'blabla to be colored text and background blabla'
хаос 'решение аналогично, но может закончиться тем, что съест более двух чисел и также не удалит свободные символы ^ C, которые могут зависать (например, тот, который закрывает команда цвета)