iPhone / Cocoa: регулярное выражение NSP предиката заменить? - PullRequest
2 голосов
/ 17 апреля 2009

Согласно этому руководству , я могу использовать NSPredicate для сопоставления регулярных выражений в строках, то есть в perl-эквиваленте $my_string =~ m/[some regex]/

Но могу ли я заменить регулярное выражение, то есть эквивалент этого выражения perl: $my_string =~ s/[pattern]/[replacement]/g?

Ответы [ 4 ]

9 голосов
/ 17 апреля 2009

Google Toolbox для Mac имеет некоторые полезные функции регулярных выражений. Это работает на iPhone. Взгляните на GTMRegex.h . Для этого метода есть категория на NSString:

- (NSString *)gtm_stringByReplacingMatchesOfPattern:(NSString *)pattern withReplacement:(NSString *)replacementPattern;
6 голосов
/ 18 апреля 2009

Самое простое решение, которое я нашел, это RegexKitLite:

http://regexkit.sourceforge.net/

(обратите внимание, что версия "Lite" - та, которую вы используете для iPhone)

Всего два файла для добавления в проект и флаг -licucore для компоновщика. Он использует встроенные способности регулярных выражений.

Он имеет расширения NSString, в том числе для замены, а также может извлекать несколько совпадений по номеру.

3 голосов
/ 17 апреля 2009

Эта функция изначально недоступна в Какао, но вы можете использовать стандартные функции c regex.h, как описано здесь (примерно три четверти пути вниз по странице).

Существует также библиотека с открытым исходным кодом под названием ObjPCRE , которая может помочь.

И кто-то смог заставить его работать , используя JavascriptCore .

Удачи!

0 голосов
/ 12 июля 2011

В iOS 4.0+ и Mac OS X 10.7+ вы можете использовать NSRegularExpression

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...