2

私は次の文字列を持っています:

<iframe width="1280" height="720" src="http://www.youtube.com/embed/Pb55ep-DrSo?wmode=opaque&autoplay=1&fs=1&feature=oembed&showinfo=0&autohide=1&controls=0" frameborder="0" allowfullscreen></iframe>

srcプロパティを引き出したいのですが、Objective-Cでどのように解析するのか正確にはわかりませんか?

4

2 に答える 2

2

これは醜いですが、うまくいきます:

NSString* str = @"<iframe width=\"1280\" height=\"720\" src=\"http://www.youtube.com/embed/Pb55ep-DrSo?wmode=opaque&autoplay=1&fs=1&feature=oembed&showinfo=0&autohide=1&controls=0\" frameborder=\"0\" allowfullscreen></iframe>";
str = [str substringFromIndex:[str rangeOfString:@"src=\""].location+[str rangeOfString:@"src=\""].length];
str = [str substringToIndex:[str rangeOfString:@"\""].location ];
NSLog(@"Str %@",str);

テストしたところ、次のように出力されます。

2012-08-17 09:16:55.285 TEST[24413:c07] Str http://www.youtube.com/embed/Pb55ep-DrSo?wmode=opaque&autoplay=1&fs=1&feature=oembed&showinfo=0&autohide=1&controls=0
于 2012-08-17T07:18:23.027 に答える
1

src プロパティを取得する正規表現は次のとおりです。正規表現ビルダーで検証する必要がある場合

src[\s]*=[\s]*"([^"]*)"

プログラムで使用できる完全なコードは次のとおりです。

NSString *searchedString = @"<iframe width=\"1280\" height=\"720\" src=\"http://www.youtube.com/embed/Pb55ep-DrSo?wmode=opaque&autoplay=1&fs=1&feature=oembed&showinfo=0&autohide=1&controls=0\" frameborder=\"0\" allowfullscreen></iframe>";
NSError* error = nil;

NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"src[\s]*=[\s]*\"([^\"]*)\"" options:0 error:&error];
NSArray* matches = [regex matchesInString:searchedString options:0 range:NSMakeRange(0, [searchedString length])];
for ( NSTextCheckingResult* match in matches )
{
    NSString* matchText = [searchedString substringWithRange:[match range]];
    NSLog(@"match: %@", matchText);
    NSRange group1 = [match rangeAtIndex:1];
    NSLog(@"group1: %@", [searchedString substringWithRange:group1]);
}

お役に立てれば!

于 2012-08-17T07:06:09.407 に答える