我需要帮助的正则表达式中的字符串:删除字符串,目标C
/folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png
我需要匹配:
ololo/ImageName.png
如何d你在Objective-C中做到了吗?
我需要帮助的正则表达式中的字符串:删除字符串,目标C
/folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png
我需要匹配:
ololo/ImageName.png
如何d你在Objective-C中做到了吗?
这里是你如何使用正则表达式做到这一点:
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
谢谢,此代码返回“从12,长度13”,但需要NSString – Sergey 2011-12-23 14:15:19
@Sergey你需要使用'[path substringWithRange:rangeOfMatch]'来获得你的字符串。 – dasblinkenlight 2011-12-23 14:24:19
谢谢大家,我的想象力帮助了:)。我用[path substringWithRange:rangeOfMatch] – Sergey 2011-12-24 04:28:06
匹配字符串。
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..
}
文件夹名称,我不知道,我知道3姓文件夹 – Sergey 2011-12-23 13:35:13
你可以用这场比赛的刺痛 -
if ([@"/folder1/folder2/folder3/folder4/folder5/folder6/folder7/ololo/ImageName.png" rangeOfString:@"ololo/ImageName.png"].location != NSNotFound)
{
//true
// do your work here
}
阅读的NSString规范特别是关于路径操作的函数列表底部附近的东西。 – 2011-12-23 13:28:48
为什么你会使用正则表达式呢? – 2011-12-23 13:29:01
好吧,如果你按照你的问题标题,那么它应该匹配'ImageName.png'而不是'ololo/ImageName.png' - 请你能解释所需的输出更清晰吗? – 2011-12-23 13:29:03