Cocoa hat ja Regex Support
Ü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.
