在text中查找 subtext所有位置

2023-05-22  本文已影响0人  不会武功的陈真
+(void)searchText:(NSString *)text subText:(NSString *)sunText comp:(void(^)(NSRange range))comp{
 
    NSError *error;
    NSRegularExpression *regular = [[NSRegularExpression alloc] initWithPattern:sunText
    options:NSRegularExpressionCaseInsensitive error:&error];
    if (!error) {
        NSArray *results = [regular matchesInString:text options:NSMatchingReportProgress range:NSMakeRange(0,
    text.length)];
        for (NSTextCheckingResult *result in results) {
            comp(result.range);
        }
    }
    else {
        NSLog(@"%@", error);
    }
}
+(void)searchText:(NSString *)text subText:(NSString *)sunText comp:(void(^)(NSRange range))comp{

    NSRange range = [text rangeOfString:sunText];
    while (range.location != NSNotFound || range.length != 0) {
        comp(range);
        NSUInteger hadSearchedRange = range.location + range.length;
        NSRange resetRange = NSMakeRange(hadSearchedRange, text.length - hadSearchedRange);
        range = [text rangeOfString:sunText options:NSCaseInsensitiveSearch range:resetRange];
    }
}
上一篇 下一篇

猜你喜欢

热点阅读