2012-05-31 73 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

相关问题