2011-05-12 57 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;)