hello list 

I'd like to check a bunch of Strings if they contain the word "cache". The 
strings are actually paths and I check the last path component. I tried to use 
CoreText to detect words, but the API was a bit overwhelming. So I tried 
NSPredicate which worked like a charm. It detects the word as of word 
boundaries are not characters (numbers, space, dash and everything else). 

{
    NSString *regex = @"(?:.*[\\s\\W0-9])*cache(?:[\\s\\W0-9].*)*";
    NSPredicate * cacheStringRegex = [NSPredicate predicateWithFormat:@"SELF 
MATCHES %@", regex];
...

    NSURL url; // assume this exists, comes from a directory enumerator
    if ( [cacheStringRegex evaluateWithObject:[url lastPathComponent]] ) {
        NSLog(@"found cache directory");
    }
}

sadly, there is an error in the regex and i cannot find it. I had three strings 
where the CPU went to 100% and the app did not recover. here the three strings 
(yes, those are directory names outside of NSCachesDirectory, i was surprised 
too :-)

com.mini.cuckooClock.Widget.7561A773F51A798326D350FE0D5617D29C3D222A.1

binarygod-BGHUDAppKit-d240cfb1a1bc155e961db145dd94e960099711b2

11) mit cachedPreferredFrameSize, ZF_SPOTLIGHT_CACHE_RESULTS, ZF_GLOBAL_SCALE = 
0,707, INITIAL_BACKGROUND, CACHE_FOR_PREVIEWS


Respect to everybody who is fluent in regex. Respect to everybody who knows 
another approach.

regards & thank you in advance

mahal


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to