NSPredicate问题,用于获取其URL大小的图片网址

时间:2014-02-06 16:22:34

标签: objective-c parsing core-data nspredicate

这是我的问题。

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

当我匹配图像时使用此模式

http://www.site.com/path/to/image/image-name-heightxwidth.extension

我想使用这种模式在我的核心数据数据库上获取此图像的匹配网址:

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];

}

1 个答案:

答案 0 :(得分: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);
    }