【发布时间】:2011-07-23 23:48:40
【问题描述】:
到目前为止,我有以下内容:
^((http[s]?|ftp):\/\/)(([^.:\/\s]*)[\.]([^:\/\s]+))(:([^\/]*))?(((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(\?([^#]*))?(#(.*))?)?$
一直在针对这些进行测试:
https://www.google.com.ar:8080/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash
https://google.com.ar:8080/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash
https://google.com:8080/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash
http://www.foo.com
http://www.foo.com/
http://blog.foo.com/
http://blog.foo.com.ar/
http://foo.com
http://blog.foo.com
http://foo.com.ar
我正在使用以下工具来测试正则表达式:regex tester
到目前为止,我已经能够产生以下组:
- 完整协议
- 精简协议
- 完整的域名
- 子域?
- *域名
- 端口
- 端口号
- 网址的其余部分
- “目录”的其余部分
- 不知道如何删除此群组
- 页面名称
- 参数字符串
- 参数字符串
- 哈希标签
- 哈希标签
我将使用这个正则表达式来更改我的应用程序的子域以实现跨域重定向超链接。
使用Request.Url作为参数,我想重定向来自
http://example.com 或 http://www.example.com 到 http://blog.example.com
我怎样才能做到这一点?
我真的不知道当前子域(例如,什么都没有,www、博客或论坛)实际上是什么(如果有的话)...
进行此替换的最佳方法是什么?
我真正需要的是某种方法来找出*域是什么。在http://www.example.com、http://blog.example.com 或http://example.com 中,我想得到example.com。
【问题讨论】: