2012-11-11 79 views
0

我有以下網址:NSRegularExpression匹配的一個或多個字母數字

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])]; 

爲什麼沒有這場比賽與正則表達式?

回答

1

您在正則表達式本身就是一個錯誤

正則表達式 @"tags/\\[a-zA-Z0-9]+/media/recent"比賽標籤/ \ picoftheday /媒體/最近

,但你需要tags/[a-zA-Z0-9]+/media/recent匹配標籤/ picoftheday /媒體/最近

有幫助的在線測試人員測試你的正則表達式,如果它匹配字符串或不http://regexpal.com/

+0

哦,對不起,我會改變它,它應該格式化爲代碼來渲染第二回斜線:) –

1

擺脫表達式中的雙反斜槓。您有:

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

不應該這是:

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

雙反斜槓被轉換爲單個反斜槓這意味着它逸出的開口方括號。這意味着該表達式正在字符串中尋找實際的開放方括號而不是打開字符組。

+0

9秒內完全相同的答案:-)我將刪除我的... –

+0

我看到了。你的確有更好的解釋。我會更新我的信息。 – rmaddy

相關問題