我有一个NSString
来自一个 37014 个字符长的 HTML 页面,其中散布着大约 20 个 URL。我使用此代码查找 URL 并将它们放在NSArray
:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*\\.(?:jpg|gif|png))(?:\\?([^#]*))?(?:#(.*))?"
options:NSRegularExpressionCaseInsensitive
error:&error];
NSArray *matches = [regex matchesInString:final
options:0
range:NSMakeRange(0, [final length])];
问题在于,即使在 iPhone 4S 上,代码也需要 5 秒才能执行。一页太慢了……我需要浏览 20 个 HTML 页面!
有更快的方法吗?也许NSScanner
或NSRange
?有人有什么创意吗?