Регулярные выражения в Cocoa

написал Владимир Пузанов - July 2, 2008 – 14:30

Странно, почему такой полезной вещи, как регулярные выражения, нет в Cocoa. Работая на своим веб-фреймворком мне пришлось перебрать несколько вариантов, пока я на нашел оптимальный.
RegexKit. Ну очень крутая вещь. Встроенное кеширование регулярок, встроенные категории для многих базовых классов из Foundation: NSArray, NSData, NSDictionary, NSSet, NSString. Можно собрать с поддержкой GNUstep.
Из минусов: габариты. Под макосью надо танцевать ну с очень крутым бубном, чтоб включить в проект не на базе Xcode. Хочет зависеть от AppKit. Но для pure-OSX разработки одно из самых лучших решений. В качестве бекенда использует PCRE.
re_format. Регулярные выражения по POSIX 1003.2. В макоси из коробки. Больше ничего хорошего, сказать то и нельзя. Основной минус - нельзя получать группы (структуры вида “(\w+)” для захвата кусков строки). Кроме того ман указывает на то, что regcomp() может быть медленным.
GTMRegex из Google Toolbox for Mac. Не более чем Objective-C враппер к re_format. Все минусы и плюсы сохраняются.
OgreKit. Используется в TextMate. В целом, вещь красивая. Но все доступные доки - на японском, что основательно затрудняет использование библиотеки. Дальше HelloWorld я уйти не смог (наверно просто и не хотелось, ибо от чтения манов голова ощутимо заболела), но вроде бы все базовые функции выполнять умеет.
AGRegex. Вполне неплохой функционал, но в отзывах жалуются на медлительность. Так и не понял, можно ли там получать группы, но объявлена как перл-совместимая.
ObjPCRE. Припасенная напоследок мини-библиотека. Является Objective-C враппером вокруг PCRE. Исходники - всего два файла, которые легко включить в уже существующую структуру проекта. Функционально достаточно гибкая, хотя после RegexKit не хватает категорий к NSString. Главный плюс - это компактность.

PS: для своего проекта, я выбрал ObjPCRE, поскольку интегрировать ее в существующее дерево CMake было действительно проще всего.

  1. Один Ответ к “Регулярные выражения в Cocoa”

  2. Somewhat fun to see Google Translate as a referer to this post. I have to note that Russian-English translation quality is awful. It might be better, still I use to many uncommon Russian words from IT slang.

    написал Владимир Пузанов на Jul 5, 2008

Написать комментарий