Еще один грандиозный пример использования регулярных выражений:
Требуется RegexKitLite . Использует регулярное выражение (?s).
, чтобы разбить строку символов Юникода на NSArray
. Оператор регулярного выражения .
соответствует всем , но символам новой строки по умолчанию, а последовательность (?s)
сообщает Turn on the Dot All regex option
, что позволяет .
также соответствовать символу новой строки. Важно, поскольку в приведенном ниже примере мы явно переходим по крайней мере \n
.
#import <Foundation/Foundation.h>
#import "RegexKitLite.h"
// Compile with: gcc -std=gnu99 -o unicodeArray unicodeArray.m RegexKitLite.m -framework Foundation -licucore
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
unichar uc[1024];
for(NSUInteger idx = 0UL; idx < 1024UL; idx++) { uc[idx] = (unichar)idx; }
NSArray *unicharArray = [[NSString stringWithCharacters:uc length:1024UL] componentsMatchedByRegex:@"(?s)."];
NSLog(@"array: %@", [unicharArray subarrayWithRange:NSMakeRange(32UL, (1024UL - 32UL))]);
[pool release];
return(0);
}