有没有办法编译NSRegularExpression以匹配多个字符串?

时间:2012-11-29 19:24:54

标签: ios

ICU和Java的正则表达式支持(可能还有其他平台)将正则表达式的编译与将其匹配到特定字符串分开。当常见的正则表达式模式与多个字符串匹配时,这可以提高性能,因为它只需要编译一次。

有没有办法用NSRegularExpression做到这一点?如果我正确阅读文档,它的设计似乎将这两个步骤结合起来。

1 个答案:

答案 0 :(得分:2)

他们是两个步骤。首先,创建一个正则表达式:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<h1>(.*?)</h1>"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

然后,第二,你使用它(显然使用你想要的任何方法):

[regex enumerateMatchesInString:htmlString
                        options:0
                          range:NSMakeRange(0, [htmlString length])
                     usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
                         // do whatever you want
                 }];

我误解了这个问题吗?