Что-нибудь вроде регулярных выражений - PullRequest
0 голосов
/ 23 апреля 2009

Есть ли что-то похожее на регулярные выражения для target-c?

Мне нужен простой способ получить элементы, разделенные следующим набором символов:

"\n"
", "
"; "

В настоящее время у меня есть следующий код:

NSMutableArray *translations = [ [NSMutableArray alloc] init];
NSArray *temp_array1 = [ [translationsView text] componentsSeparatedByString:@"\n"];

for (int i = 0; i < [temp_array1 count]; i++)
{
    NSArray *temp_array2 = [ [temp_array1 objectAtIndex: i] componentsSeparatedByString:@", "];
    for (int j = 0; j < [temp_array2 count]; j++)
    {j]);
        [translations addObject: [temp_array2 objectAtIndex: j] ];
    }
}

Но я также хочу реализовать поддержку разделителя ";". И если я собираюсь сделать это так же, как я сделал это, прежде чем это станет сложным.

Есть ли более простой способ достичь этой цели?

Заранее спасибо.

1 Ответ

4 голосов
/ 23 апреля 2009

Я думаю, вы захотите взглянуть на RegexKit Framework .

RegexKit - это среда Objective-C для регулярных выражений:

  • Поддержка Mac OS X Какао и GNUstep. Mac OS X 10.4 или более поздняя версия требуется.
  • Mac OS X Universal Binary, включая 64-разрядную поддержку в Mac OS X 10.5.
  • Подклассы не требуются. Легко добавляет поддержку регулярных выражений для всех NSArray, NSData, NSDictionary, NSSet, и NSString Foundation объекты с богатый набор Objective-C категории дополнения.
  • Юникод включен. Полная поддержка Unicode для объектов NSString.
  • Обширная, качественная документация.
  • Полный исходный код с лицензией BSD.
  • Использует лицензированную BSD библиотеку регулярных выражений, совместимых с PCRE Perl для механизма регулярных выражений.

Настроен для высокой производительности, в том числе такие функции как:

  • Кэширует скомпилированную форму регулярного выражения для скорости.
  • Многопоточный сейф, в том числе несколько читателей, один писатель многопоточный доступ к скомпилированному кеш регулярных выражений.
  • Делает минимальное использование памяти кучи (т.е. malloc () и free ()) вместо выделение большинства временных потребностей в буфере динамически из стека.
  • Использование Core Foundation непосредственно в Mac OS X для дополнительной скорости.

Включает поддержку Mac OS X 10.5 Leopard:

  • 64-битная поддержка. Предварительно построен для ppc, ppc64, i386 и x86_64.
  • Сборка мусора включена. Полная поддержка Leopards Garbage Функция сбора.
  • Интегрированная документация Xcode 3.0. Получите информацию об API в реальном времени через Научный сотрудник.
  • Коллекция инструментов для Instruments.app.
  • Специфичные для RegexKit точки измерения DTrace.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...