我正在寻找一种方法将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