Objective c NSPredicate获取图像url的问题,其大小为url

Objective c NSPredicate获取图像url的问题,其大小为url,objective-c,parsing,core-data,nspredicate,Objective C,Parsing,Core Data,Nspredicate,这是我的问题 我正在使用HTML解析器解析HTML内容 当我使用这种模式匹配图像时 http://www.site.com/path/to/image/image-name-heightxwidth.extension 我想使用以下模式在我的核心数据数据库中获取此图像的匹配url: http://www.site.com/path/to/image/image-name.extension 我应该使用什么正确的“格式谓词”来执行请求 编辑:以下是我在数据库中执行请求的代码 - (WPImag

这是我的问题

我正在使用HTML解析器解析HTML内容

当我使用这种模式匹配图像时

http://www.site.com/path/to/image/image-name-heightxwidth.extension
我想使用以下模式在我的核心数据数据库中获取此图像的匹配url:

http://www.site.com/path/to/image/image-name.extension
我应该使用什么正确的“格式谓词”来执行请求

编辑:以下是我在数据库中执行请求的代码

- (WPImage *)imageMatchingUrl:(NSString *)urlString {

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"url CONTAINS %@",urlString];
    ALog(@"WPImage for urlString %@ found ? : %@",urlString, [self getEntities:NSStringFromClass([WPImage class]) withPredicate:predicate][0]?@"Yes":@"No");
    return [self getEntities:NSStringFromClass([WPImage class]) withPredicate:predicate][0];

}

请尝试正则表达式NSPattern无法执行此操作,这应该可以执行以下操作:

    NSString *st1 = @"http://www.site.com/path/to/image/image-name-300x200.extension";

    NSRange   searchedRange = NSMakeRange(0, [st1 length]);
    NSString *pattern = @"-\\d+x\\d+";
    NSError  *error = nil;

    NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
    NSArray* matches = [regex matchesInString:st1 options:0 range: searchedRange];
    for (NSTextCheckingResult* match in matches)
    {
        NSString* matchText = [st1 stringByReplacingCharactersInRange:[match range] withString:@""];

        NSLog(@"Match: %@", matchText);
    }

我认为谓词不起作用,你应该看看NNSRegularExpression。是的!我认为这是最好的解决办法!但是我应该使用什么正则表达式呢?我应该使用这个谓词:NSPredicate*谓词=[NSPredicate predicateWithFormat:@“url CONTAINS%@”,result];或者这个:NSPredicate*谓词=[NSPredicate谓词格式:@“url==%@”,结果];对不起,我没有得到你想要的。我认为您希望从url字符串文本中删除:'-heightxwidth',例如'-300x300'。而我的正则表达式将为此工作。如果不是真的,你能解释一下你的模式吗?我不能从你的谓词示例中看到很多东西。是的,当然!但是后来!我的函数应该返回一个“WPImage”,其中属性“url”与我的数据库中正则表达式的结果匹配:)如果marches数组中没有对象,则表示找不到该模式。但如果有一个for循环中的matchText变量,请保留url字符串,以便基于该字符串可以创建谓词[NSPredicate predicateWithFormat:@“url=%@”,matchText];。您必须使用NSRegularExpression,因为您的映像名称可能不同,例如20x20、300x300等,而您的NSPredictate在这种情况下不起作用。