Objective c 删除斜杠前的字符串,目标C
我需要字符串中正则表达式的帮助: /folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png 我需要匹配: ololo/ImageName.png 如何在Objective-C中实现这一点?以匹配字符串Objective c 删除斜杠前的字符串,目标C,objective-c,regex,cocoa,Objective C,Regex,Cocoa,我需要字符串中正则表达式的帮助: /folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png 我需要匹配: ololo/ImageName.png 如何在Objective-C中实现这一点?以匹配字符串 NSPredicate *predicate = nil; predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES 'ololo/Imag
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..
}
你可以用这个来配刺-
if ([@"/folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png" rangeOfString:@"ololo/ImageName.png"].location != NSNotFound)
{
//true
// do your work here
}
下面是使用正则表达式的方法:
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
读取NSString规范,尤其是函数列表底部关于路径操作的内容。为什么要使用正则表达式呢?如果按照问题标题进行操作,那么它应该匹配ImageName.png
而不是ololo/ImageName.png
-请您更清楚地解释所需的输出?它需要是正则表达式吗?有一个简单的非正则表达式解决方案。Alex Coplan-我在使用路径,不使用我不知道的图像名文件夹名,我知道3个姓氏文件夹名,此代码返回“From 12,length 13”,但需要NSString@Sergey您需要使用[path substringWithRange:rangeOfMatch]
获取字符串。谢谢大家,我的想象力起了作用:)。我使用了[path substringWithRange:rangeOfMatch]