解析cocoa中的URL

时间:2012-06-09 09:37:48

标签: regex cocoa parsing url

网址为:http://oauth.vk.com/blank.html#access_token=244832666b8168a3mna06f03f5324789a8022455245532b032375f193ceab923&expires_in=86400&user_id=191742

如何在Cocoa中解析它并获取access_tokenuser_id

2 个答案:

答案 0 :(得分:2)

-fragment的{​​{1}}方法会在NSURL之后返回字符串。

这是什么用途。这是非常基本的,不支持实体(如#),它只是按&然后按&分割字符串。

=

因此,您的网址@interface NSURL (SYBasicKeyValueParsing) - (NSDictionary *)sy_keysAndValuesOfString:(NSString *)string; - (NSDictionary *)sy_keysAndValuesOfFragment; - (NSDictionary *)sy_keysAndValuesOfQuery; @end @implementation NSURL (SYBasicKeyValueParsing) - (NSDictionary *)sy_keysAndValuesOfString:(NSString *)string { if (!string) return nil; NSMutableDictionary *result = [NSMutableDictionary dictionary]; for (NSString *pair in [string componentsSeparatedByString:@"&"]) { NSArray *keyAndValue = [pair componentsSeparatedByString:@"="]; if ([keyAndValue count] == 2) { [result setObject:[keyAndValue objectAtIndex:1] forKey:[keyAndValue objectAtIndex:0]]; } } return [[result copy] autorelease]; } - (NSDictionary *)sy_keysAndValuesOfFragment { return [self sy_keysAndValuesOfString:[self fragment]]; } - (NSDictionary *)sy_keysAndValuesOfQuery { return [self sy_keysAndValuesOfString:[self query]]; } @end 会产生以下结果:

sy_keysAndValuesOfFragment

答案 1 :(得分:1)

有一个用于解析URL的类:NSURL。如果这还不够,可以使用NSString类的componentsSeparatedByString方法获取参数。