Ios 查找与特定字符串的匹配项
我在documents文件夹中有一些图像文件,名称看起来像a_b.png,其中a是每个用户的ID(它是一个数字),b是他保存的图片的名称。因此,我想找到id=1的用户的所有图片,并将它们保存到一个数组中。我正在浏览每个图像文件,我想将文件名与模式1_*.png进行比较。我试过了Ios 查找与特定字符串的匹配项,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我在documents文件夹中有一些图像文件,名称看起来像a_b.png,其中a是每个用户的ID(它是一个数字),b是他保存的图片的名称。因此,我想找到id=1的用户的所有图片,并将它们保存到一个数组中。我正在浏览每个图像文件,我想将文件名与模式1_*.png进行比较。我试过了 NSString *searchterm = [NSString stringWithFormat:@"%lu_*.png",clientID]; for(NSString filename in docFiles)
NSString *searchterm = [NSString stringWithFormat:@"%lu_*.png",clientID];
for(NSString filename in docFiles)
{
if([fileName isEqualTostring:searchterm])
{.....}
}
但我没有得到任何结果
你知道我该怎么做吗?我会:
尝试检查前缀和后缀。我想这会比regex更有效,而且肯定更容易阅读
if([fileName hasPrefix:[NSString stringWithFormat:@"%ld_",clientID]] && [fileName hasSuffix:@".png") {
}
正如large建议执行所需的星号通配符一样,您应该使用NSPredicate来过滤docfile。例如:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@", searchterm];
NSArray *results = [docFiles filteredArrayUsingPredicate:predicate];
但是trojanfoe的答案似乎是一个更好的做法。你可以使用Regex/nspredicate为每个循环打印
filename
和searchterm
?可能重复尼斯建议。我试试看。谢谢