iPhone为GET参数解析网址

Nar*_*mar 7 string iphone

我有一个从解析xml站点得到的字符串.

http://www.arijasoft.com/givemesomthing.php?a=3434&b=435edsf&c=500
Run Code Online (Sandbox Code Playgroud)

我想有一个NSString函数,可以解析c的值.是否有默认功能或我必须手动编写它.

Fel*_*oux 22

您可以通过RegExKit Lite使用正则表达式:http://regexkit.sourceforge.net/RegexKitLite/

或者你可以将字符串分成组件(这不太好):

NSString *url=@"http://www.arijasoft.com/givemesomthing.php?a=3434&b=435edsf&c=500";
NSArray *comp1 = [url componentsSeparatedByString:@"?"];
NSString *query = [comp1 lastObject];
NSArray *queryElements = [query componentsSeparatedByString:@"&"];
for (NSString *element in queryElements) {
    NSArray *keyVal = [element componentsSeparatedByString:@"="];
    if (keyVal.count > 0) {
       NSString *variableKey = [keyVal objectAtIndex:0];
       NSString *value = (keyVal.count == 2) ? [keyVal lastObject] : nil;
    }
}
Run Code Online (Sandbox Code Playgroud)


Dim*_*ris 6

我做了一个类,使用一个为你做解析NSScanner,作为几天前同一个问题的答案.你可能会发现它很有用.

您可以轻松使用它:

    URLParser *parser = [[[URLParser alloc] initWithURLString:@"http://www.arijasoft.com/givemesomthing.php?a=3434&b=435edsf&c=500"] autorelease];
    NSString *c = [parser valueForVariable:@"c"];   //c=500
Run Code Online (Sandbox Code Playgroud)