Удалить строку перед косой чертой, цель C - PullRequest
2 голосов
/ 23 декабря 2011

Мне нужна помощь в регулярных выражениях в строке:

/ folder1 / folder2 / folder3 / Folder4 / folder5 / folder6 / folder7 / ололо / ImageName.png

Мне нужно соответствовать:

ололо / ImageName.png

Как вы это делаете в Objective-C?

Ответы [ 3 ]

1 голос
/ 23 декабря 2011

Для соответствия строке.

NSPredicate *predicate = nil;
predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES 'ololo/ImageName.png'"];
if (![predicate evaluateWithObject:@"/folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png"]) 
{
// do your work here.. 
}
0 голосов
/ 23 декабря 2011

Вот как вы делаете это с помощью регулярных выражений:

NSString *path = @"quick/brown/fox/jumps.png";
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^/]+[/][^/]+$" options:0 error:&error];
NSRange rangeOfMatch = [regex rangeOfFirstMatchInString:path options:0 range:NSMakeRange(0, path.length)];
NSLog(@"From %d, length %d", (int)rangeOfMatch.location, (int)rangeOfMatch.length);

Этот код находит fox/jumps.png

0 голосов
/ 23 декабря 2011

Вы можете сопоставить жало с этим -

if ([@"/folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png" rangeOfString:@"ololo/ImageName.png"].location != NSNotFound) 
{
   //true
   // do your work here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...