0

文字列内のパターンを検索したい。以下のコードでは、パターン文字列'*'は任意の文字にすることができます。

このサンプルコードはここから入手しましたが、機能していません。

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にします

4

2 に答える 2

1

パターンを次のように変更します。

pattern = @"img=(.*?).png";
于 2013-01-09T09:59:50.093 に答える
0

このパターンはうまくいく可能性があります:

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
于 2013-01-09T10:27:42.120 に答える