我正在尋找一種方法將URL拆分爲其組成部分,以便我可以處理每個元素。爲什麼?因爲該URL是我想特別處理的iPhone應用程序中的自定義方案。將URL拆分爲其組成部分的正則表達式
例如,如果用戶點擊鏈接的URL myapp:// section /?id = 123我想在該方案之後使用該字符串作爲指示要在我的應用中跳轉到哪個部分,然後分割該鍵/值作爲向哪個子視圖呈現給用戶的指示。
我猜一個正則表達式會做的伎倆。
我正在尋找一種方法將URL拆分爲其組成部分,以便我可以處理每個元素。爲什麼?因爲該URL是我想特別處理的iPhone應用程序中的自定義方案。將URL拆分爲其組成部分的正則表達式
例如,如果用戶點擊鏈接的URL myapp:// section /?id = 123我想在該方案之後使用該字符串作爲指示要在我的應用中跳轉到哪個部分,然後分割該鍵/值作爲向哪個子視圖呈現給用戶的指示。
我猜一個正則表達式會做的伎倆。
這裏的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
一個正則表達式是嚴重矯枉過正爲此。首先分開://
,然後在/
。
(你可以在使用NSScanner有loook,或比爾Dudney指出,只要使用NSURL;)
看看該文檔的NSURL;
向下滾動到
Accessing the Parts of the URL
,並看到所有NSURL能爲你做沒有一個正則表達式...
+1爲例 – JeremyP 2011-05-12 15:44:34
哎呀你們是快!我只是想出了它。我沒有意識到NSUrl是如此有用。謝謝! – 2011-05-12 15:51:51