0

我有以下网址:

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

正则表达式本身有错误

正则表达式 @"tags/\\[a-zA-Z0-9]+/media/recent"匹配 标签/\picoftheday/media/recent

但你需要tags/[a-zA-Z0-9]+/media/recent匹配标签/picoftheday/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 回答