是否有类似于objective-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] ];
}
}
但我也希望实现对“;”分隔符的支持。如果我打算以同样的方式做到这一点,那么它将成为复杂的方式。
是否有更简单的方法来实现这一目标?
提前谢谢。
答案 0 :(得分:4)
我想你会想看看RegexKit Framework。
RegexKit是一个Objective-C框架 对于正则表达式:
- 支持Mac OS X Cocoa和GNUstep。 Mac OS X 10.4或更高版本 必需的。
- Mac OS X Universal Binary,包括Mac OS X 10.5上的64位支持。
- 不需要进行细分。无缝地为所有人添加正则表达式支持 NSArray,NSData,NSDictionary,NSSet, 和NSString Foundation对象 丰富的Objective-C类集 加法。
- 启用Unicode。对NSString对象的完全Unicode支持。
- 广泛,高质量的文档。
- 具有BSD许可证的完整源代码。
- 使用BSD许可的PCRE Perl兼容正则表达式库 用于正则表达式引擎。
调整为高性能,包括 如下功能:
- 缓存正则表达式的编译形式以获得速度。
- 多线程安全,包括多个读者,单个写入者 多线程访问已编译的 正则表达式缓存。
- 使用最少的堆存储(即malloc()和free()) 分配大多数临时缓冲区需求 动态地来自堆栈。
- 直接在Mac OS X上使用Core Foundation以获得更高的速度。
包括对Mac OS X 10.5的支持 豹:
- 64位支持。预先构建为ppc,ppc64,i386和x86_64。
- 启用垃圾收集。完全支持Leopards垃圾 收集功能。
- 集成的Xcode 3.0文档。通过获取实时API信息 研究助理。
- Instruments.app。的文书集。
- RegexKit特定的DTrace探测点。