0

この単純な正規表現に関するヒントが必要です。

<img src ="..."/>からsrcを抽出するための正規表現とターゲット文字列コード

NSString *imgTag = @"<img alt=\"\" src=\"/sites/default/files/mypic.gif\" style=\"width: 300px; height: 195px;\" />";

NSRegularExpression *a = [NSRegularExpression regularExpressionWithPattern:@"src=\"(.*)\"" options:NSRegularExpressionCaseInsensitive error:nil];

それが何かと関係があるかどうかわからないoptions

NSTextCheckingResult *matches = [a firstMatchInString:imgTag options:NSMatchingReportProgress range:NSMakeRange(0, [imgTag length])];

NSRange matchRange = [matches range];
NSString *src = [imgTag substringWithRange:matchRange];
NSLog(@"%s, %@", __PRETTY_FUNCTION__, src);

これで、グループだけでなく、それ以降のすべてが終了タグまで返されるため、出力は予期しないものになります。

出力

/sites/default/files/mypic.gif" style="width: 300px; height: 195px;
4

2 に答える 2

2

"基本的に最初から最後まですべてに一致してい"ます。

?おそらく、「0回以上一致します。可能な限り一致しません。 」という欲張りでない演算子を使用する必要があります。
例えば:

NSRegularExpression *a = [NSRegularExpression regularExpressionWithPattern:@"src=\"(.*?)\"" options:NSRegularExpressionCaseInsensitive error:nil];
于 2013-03-09T17:02:35.153 に答える
1

あなたの正規表現は貪欲です。

試す:

@"src=\"(.*?)\""

あなたの表現のために。

于 2013-03-09T17:00:54.773 に答える