2012-05-31 104 views
2

所以我有一個字符串:NSRegularExpression不匹配

users/9881570/?access_token= 

,我試圖以匹配正則表達式:

NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern:@"users/\\d/?access_token=" options:NSRegularExpressionCaseInsensitive error:&error]; 

     NSArray* wordArray = [regex matchesInString:self.currentRequestURL_ 
              options:0 range:NSMakeRange(0, [self.currentRequestURL_ length])]; 

然而,wordArray具有0計數這是爲什麼不匹配?

回答

2

一方面,您需要轉義問號,另一方面您需要在您的\ d後面加一個加號(+)來表示1 或更多數字。現在你只能找一個數字。

@"users/\\d+/\\?access_token=" 
+0

對於@adit網上有很多的網站,讓你測試正則表達式。我在這裏測試了這個答案中的一個:http://regexpal.com/,它的工作原理(確保避開反斜槓)。 – JeremyP

+0

@JeremyP哇,這個漂亮!我很高興,並沒有測試它之前,我加入><和我通常使用regextester.com,但我想開始使用這一個。另外,這裏是正則表達式的備忘單http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/ – borrrden

0

由於問號是正則表達式中的特殊字符,因此需要將其轉義。

+0

這樣的意思:@「用戶/ \\ d // =的access_token?」?怎麼我試過,也和它沒有工作 – adit

相關問題