Поиск шаблона в NSString

Я хочу найти шаблон в строке. В приведенном ниже коде строка шаблона '*' может быть любым символом.

Я получил этот пример кода из здесь, но у меня это не работает.

NSString *string;
NSString *pattern;
NSRegularExpression *regex;


string = @"img=img_1.png or it can be img=img.png";
pattern = @"img=*.png";

regex = [NSRegularExpression
         regularExpressionWithPattern:pattern
         options:NSRegularExpressionCaseInsensitive
         error:nil];

NSArray *matches = [regex matchesInString:string
                                  options:0
                                    range:NSMakeRange(0, [string length])];

NSLog(@"matches - %@", matches);

for (NSTextCheckingResult *match in matches)
{
    NSRange range = [match rangeAtIndex:1];
    NSLog(@"match: %@", [string substringWithRange:range]);
}

Я хочу, чтобы строка optput была img_1.png и img.png


person JiteshW    schedule 09.01.2013    source источник


Ответы (2)


Измените шаблон на:

pattern = @"img=(.*?).png";
person Andy    schedule 09.01.2013
comment
Я получил это o/p -> match: img_1.png или это может быть img=img, где я хочу img_1.png & img.png - person JiteshW; 09.01.2013
comment
Спасибо, это решило мою проблему. - person JiteshW; 09.01.2013

этот шаблон может хорошо работать:

NSString *pattern = @"(img=img[\\S]*\\.png)";

совпадения:

0 : {0, 13} - img=img_1.png
1 : {27, 11} - img=img.png

ИЛИ

с другим узором:

NSString *pattern = @"(img[^=][\\S]*png)";

совпадения (без части img=):

0 : {4, 9} - img_1.png
1 : {31, 7} - img.png
person holex    schedule 09.01.2013