0

次の URL があります。

https://api.instagram.com/v1/tags/picoftheday/media/recent?access_token=29088696%2Efd3325f%2E7e277194e17340788abc72583dfd48b3

および次の正規表現:

 NSRegularExpression * regexTags = [NSRegularExpression regularExpressionWithPattern:@"tags/\\[a-zA-Z0-9]+/media/recent" options:NSRegularExpressionCaseInsensitive error:&error];
   NSArray* tagMatch = [regexTags matchesInString:self.currentRequestURL_
                                                 options:0 range:NSMakeRange(0, [self.currentRequestURL_ length])];

これが正規表現と一致しないのはなぜですか?

4

2 に答える 2

2

REGEX自体にエラーがあります

正規表現 はtags/\picoftheday/media/recent に@"tags/\\[a-zA-Z0-9]+/media/recent"一致し ます

ただし、 tags/picoftheday/media/recenttags/[a-zA-Z0-9]+/media/recentに一致する必要があります

正規表現が文字列と一致するかどうかをテストするのに役立つオンライン テスターがありますhttp://regexpal.com/

于 2012-11-11T18:08:43.070 に答える
1

式から二重の円記号を削除します。あなたが持っている:

@"tags/\\[a-zA-Z0-9]+/media/recent"

これはすべきではありません:

@"tags/[a-zA-Z0-9]+/media/recent" 

ダブルバックスラッシュはシングルバックスラッシュに変換されます。これは、最初の角かっこから抜けることを意味します。これは、式が文字グループを開くのではなく、文字列内で実際に開いている角括弧を探していることを意味します。

于 2012-11-11T17:54:00.420 に答える