ICU 和 Java 的正则表达式支持(可能还有其他平台)将正则表达式的编译与将其与特定字符串匹配分开。当一个常见的正则表达式模式与多个字符串匹配时,这会提高性能,因为它只需要编译一次。
有没有办法用 NSRegularExpression 做到这一点?如果我正确阅读文档,它的设计似乎结合了这两个步骤。
ICU 和 Java 的正则表达式支持(可能还有其他平台)将正则表达式的编译与将其与特定字符串匹配分开。当一个常见的正则表达式模式与多个字符串匹配时,这会提高性能,因为它只需要编译一次。
有没有办法用 NSRegularExpression 做到这一点?如果我正确阅读文档,它的设计似乎结合了这两个步骤。
它们是两个步骤。首先,您创建一个正则表达式:
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
}];
我误解了这个问题吗?