У меня есть фрагмент кода, который присваивает атрибуты NSAttributedString
в зависимости от того, присутствуют ли в строке определенные ключевые слова. Другими словами, подсветка синтаксиса.Использование регулярных выражений для выделения синтаксиса
Чтобы найти, если определенная строка содержит эти ключевые слова, я в настоящее время использую регулярные выражения, чтобы найти местоположение этих слов с помощью "\\bKEYWORD\\b"
. Проблема, очевидно, в производительности.
Сначала я попытался с NSRegularExpression
, но производительность была настолько медленной, что прокрутка моего текста была практически невозможна. Затем я попробовал Oniguruma, и все улучшилось, но все равно заметно медленное. Я могу попробовать PCRE, но я не думаю, что добавлю много.
Итак, мой вопрос: как я могу ускорить поиск регулярных выражений? Может быть, кеширование скомпилированного выражения?
Выполнение этого задания и кэширование шаблона привели к значительному повышению производительности. – ruipacheco
Могу ли я спросить, как вы создали изображение в своем ответе? – Dan