Ich versuche, zwischen zwei Dateien (im NSString-Format) zu unterscheiden. Soweit ich weiß, kann dies durch Vergleichen und Vergleichen eines regulären Ausdrucks geschehen. Das Format der 2 jpg-Dateien, die ich habe, sind:Übereinstimmen eines regulären Ausdrucks mit einer Zeichenfolge (Dateiname)
butter.jpg
Butter-1.jpg
Meine Frage ist, was regulären Ausdruck kann ich schreiben, um die 2 Strings übereinstimmen über? Ich habe gesucht und einen Beispielausdruck gefunden, aber ich bin mir nicht sicher, wie es gelesen wird und denke, dass es falsch ist.
Hier ist mein Code:
NSString *exampleFileName = [NSString stringWithFormat:@"butter-1.jpg"];
NSString *regEx = @".*l{2,}.*";
NSPredicate *regExTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regEx];
if ([regExTest evaluateWithObject:exampleFileName] == YES) {
NSLog(@"Match!");
} else {
NSLog(@"No match!");
}
EDIT:
ich das versucht, mit folgenden:
NSString *regEx = @"[a-z]+-[0-9]+.+jpg";
zu versuchen, entsprechen:
NSString *exampleFileName = [NSString stringWithFormat:@"abcdefg-112323.jpg"];
Getestet mit:
abc-11.jpg (Match)
abcsdas-.jpg (keine Übereinstimmung)
abcdefg11. (Keine Übereinstimmung)
abcdefg-3123.jpg (Match)
Ab jetzt funktioniert es, aber ich will alle Chancen beseitigen, daß es nicht, alle Eingaben?
Sie müssen Ihre Abgleichkriterien genauer erläutern. Warum sagst du nicht einfach '[exampleFileName hasPrefix: @" butter "] && [exampleFileName hasSuffix: @". Jpg "]'? –
Hallo, tut mir leid. Meine Kriterien sind, dass .jpg dort sein muss, wo Butter alles sein kann, solange es ein Alphabet ist. Der Bindestrich und die Ziffer müssen jedoch vorhanden sein. – Dawson