Sto tentando di distinguere tra 2 file (in formato NSString). Per quanto ne so, questo può essere fatto confrontando e abbinando un'espressione regolare. Il formato dei file jpg 2, che ho sono:Corrispondenza con un'espressione regolare con una stringa (nome file)
butter.jpg
burro-1.jpg
La mia domanda è che cosa espressione regolare posso scrivere per abbinare le 2 corde sopra? Ho cercato e trovato un'espressione di esempio, ma non sono sicuro di come viene letto e penso che sia sbagliato.
Ecco il mio codice:
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:
Ho provato ad utilizzare il seguente:
NSString *regEx = @"[a-z]+-[0-9]+.+jpg";
per cercare di abbinare:
NSString *exampleFileName = [NSString stringWithFormat:@"abcdefg-112323.jpg"];
Testato con:
abc-11.jpg (Match)
abcsdas-.jpg (No Match)
abcdefg11. (No Match)
abcdefg-3123.jpg (Match)
A partire da ora funziona, ma voglio eliminare ogni possibilità che non potrebbe, eventuali ingressi?
È necessario spiegare i criteri di corrispondenza in modo più dettagliato. Perché non dire semplicemente '[exampleFileName hasPrefix: @" butter "] && [exampleFileName hasSuffix: @". Jpg "]'? –
Ciao, mi dispiace per quello. Il mio criterio è che .jpg deve essere lì, dove il burro può essere qualsiasi cosa purché sia un alfabeto. Tuttavia il trattino e la cifra devono essere lì. – Dawson