Cocoa hat ja Regex Support

written by Martin HĂ€cker on

Überraschend.

Das der so vollstÀndig ist, hÀtte ich nicht erwartet. Aber in der Tat, ICU-Regexe in ihrer ganzen Pracht. Völlig ohne eine neue externe Dependency.

Laut der Dokumentation sollte das sogar in 10.4 schon funktionieren - mit dem einen Caveat, dass multiline Support dort wohl von Hand eingeschaltet werden muss (via (?m))

Sowas wird da möglich:

if ([@"aaa" matchesRegex:@"a{3}"])
    NSLog(@"gotcha");

// other examples
[@"argh fnord argh" matchesRegex:@".*\\bfnord\\b.*"];
[@"aaa" matchesRegex:@"\\w{3}"];

Und das mit extrem wenig Aufwand:

@interface NSString (SimpleRegexMatching)
- (BOOL) matchesRegex:(NSString *)aRegex;
@end

@implementation NSString (SimpleRegexMatching)
- (BOOL) matchesRegex:(NSString *)aRegex;
{
    id predicate = [NSPredicate predicateWithFormat:@"self matches %@", aRegex];
    return [predicate evaluateWithObject:self];
}
@end

Ich bin beeindruckt.

[source:/open-source/SimpleRegexSupport/trunk/RegexTest.m Code hier]