2011-05-12 159 views
3

我正在寻找一种方法将URL拆分为其组成部分,以便我可以处理每个元素。为什么?因为该URL是我想特别处理的iPhone应用程序中的自定义方案。将URL拆分为其组成部分的正则表达式

例如,如果用户点击链接的URL myapp:// section /?id = 123我想在该方案之后使用该字符串作为指示要在我的应用中跳转到哪个部分,然后分割该键/值作为向哪个子视图呈现给用户的指示。

我猜一个正则表达式会做的伎俩。

回答

6

这里的NSURL类及其用法的例子。

NSURL *url = [NSURL URLWithString:@"foo://name.com:8080/12345;param?foo=1&baa=2#fragment"]; 

NSLog(@"scheme: %@", [url scheme]); 
NSLog(@"host: %@", [url host]); 
NSLog(@"port: %@", [url port]);  
NSLog(@"path: %@", [url path]);  
NSLog(@"path components: %@", [url pathComponents]);   
NSLog(@"parameterString: %@", [url parameterString]); 
NSLog(@"query: %@", [url query]);  
NSLog(@"fragment: %@", [url fragment]); 

输出:

scheme: foo 
host: name.com 
port: 8080 
path: /12345 
path components: (
    "/", 
    12345 
) 
parameterString: param 
query: foo=1&baa=2 
fragment: fragment 
+0

+1为例 – JeremyP 2011-05-12 15:44:34

+0

哎呀你们是快!我只是想出了它。我没有意识到NSUrl是如此有用。谢谢! – 2011-05-12 15:51:51

0

一个正则表达式是严重矫枉过正为此。首先分开://,然后在/

(你可以在使用NSScanner有loook,或比尔Dudney指出,只要使用NSURL;)