Ă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]