我有一个URL库的表,先且定义表结构(表A)如下:
URL分类 URL地址
-------------------------- --------------------------
科学: 数学: 杂志 http://zxsxjx.periodicals.net.cn/default.html
参考: 教育: 大专院校与研究所: 甘肃 http://zxxy.nwnu.edu.cn/
地区: 亚洲: 中国: 贵州: 遵义 http://zy.gz163.cn/
健康: 医学: 医学信息 http://zyw.njmu.edu.cn/Index.html
地区: 亚洲: 中国: 广东: 茂名: 健康 http://zyy.maoming.gov.cn/
商业: 原材料: 纸浆与纸 http://zzpaper.com/
计算机: 互联网络: 搜寻: 搜索引擎: Google https://adwords.google.com/support/
休闲: 聊天与论坛 https://bbs.et8.net/bbs/
商业: 电子商务: 支付系统 https://cmpay.10086.cn/
休闲: 聊天与论坛 https://dream4ever.org/
商业: 电子商务: 支付系统 https://www.alipay.com/用户访问的地址:
http://api.weibo.cn/interface/f/ttt/v3/getuserinfo.php?nobadge=1&uid=3187720094&s=e1f0e712&gsid=4uzjd7563nfx6abozfn8vdify1x&c=android&wm=2447_0001
如何用很好的正则表达式匹配URL库呢?原则如下:
(1)、用户访问的URL地址,如果能在URL库直接匹配,那么输出分类,结束;
(2)、如果(1)不能匹配到,截取用户URL地址到“/”分类,如例子截取后“http://api.weibo.cn/interface/f/ttt/v3/getuserinfo.php”是否能匹配到,匹配到直接输出分类,结束;
(3)、(2)的方法依次类推匹配(截取回退一个"/",如:http://api.weibo.cn/interface/f/ttt/v3),直到网站域名“http://api.weibo.cn/”是否能匹配到,匹配到直接输出分类,结束;
(4)、如果(3)不能匹配到,截取用户访问地址到域名"http://api.weibo.cn/",是否能匹配到,匹配到直接输出分类,结束;
(5)、如果(4)不能匹配,匹配2级域名“http://xxx.weibo.cn/”,如果能匹配到,匹配到直接输出分类,结束;--多少域名,根据用户URL地址来判断;如果用户访问URL地址有5级,需要逐步循环处理,知道匹配到一级域名,如用户访问http://loc.map.baidu.com/sdk.php;
(6)、如果(5)也匹配不到,直接输出“其它”,结束;正则
URL分类 URL地址
-------------------------- --------------------------
科学: 数学: 杂志 http://zxsxjx.periodicals.net.cn/default.html
参考: 教育: 大专院校与研究所: 甘肃 http://zxxy.nwnu.edu.cn/
地区: 亚洲: 中国: 贵州: 遵义 http://zy.gz163.cn/
健康: 医学: 医学信息 http://zyw.njmu.edu.cn/Index.html
地区: 亚洲: 中国: 广东: 茂名: 健康 http://zyy.maoming.gov.cn/
商业: 原材料: 纸浆与纸 http://zzpaper.com/
计算机: 互联网络: 搜寻: 搜索引擎: Google https://adwords.google.com/support/
休闲: 聊天与论坛 https://bbs.et8.net/bbs/
商业: 电子商务: 支付系统 https://cmpay.10086.cn/
休闲: 聊天与论坛 https://dream4ever.org/
商业: 电子商务: 支付系统 https://www.alipay.com/用户访问的地址:
http://api.weibo.cn/interface/f/ttt/v3/getuserinfo.php?nobadge=1&uid=3187720094&s=e1f0e712&gsid=4uzjd7563nfx6abozfn8vdify1x&c=android&wm=2447_0001
如何用很好的正则表达式匹配URL库呢?原则如下:
(1)、用户访问的URL地址,如果能在URL库直接匹配,那么输出分类,结束;
(2)、如果(1)不能匹配到,截取用户URL地址到“/”分类,如例子截取后“http://api.weibo.cn/interface/f/ttt/v3/getuserinfo.php”是否能匹配到,匹配到直接输出分类,结束;
(3)、(2)的方法依次类推匹配(截取回退一个"/",如:http://api.weibo.cn/interface/f/ttt/v3),直到网站域名“http://api.weibo.cn/”是否能匹配到,匹配到直接输出分类,结束;
(4)、如果(3)不能匹配到,截取用户访问地址到域名"http://api.weibo.cn/",是否能匹配到,匹配到直接输出分类,结束;
(5)、如果(4)不能匹配,匹配2级域名“http://xxx.weibo.cn/”,如果能匹配到,匹配到直接输出分类,结束;--多少域名,根据用户URL地址来判断;如果用户访问URL地址有5级,需要逐步循环处理,知道匹配到一级域名,如用户访问http://loc.map.baidu.com/sdk.php;
(6)、如果(5)也匹配不到,直接输出“其它”,结束;正则
解决方案 »
- C#的winform开发中怎样该改变ComboBox的ScrollBar的背景颜色
- 关于引用类库
- c#用socket 分块传送问题,急,急,急
- HTML解析高手请进!!!!
- pictureBox1.Image上的图象保存到硬盘上有错误!!!马上给分!!!!
- 如何获得IE7所有选项卡的标题
- 初始化失败(在线)
- 一个统计图片的点击率的功能,小弟在线等呀
- 水晶报表获取打印机状态与名称
- 我想通过C#实现对远程主机系统配置的查询与操作、执行远程主机的cmd程序、对远程主机文件的读写操作,远程主机是windows2003操作系统,我有目标主机的用户
- 关于c#网络编程推荐
- WCF配置中的X509的EncodedValue
其他地方直接Split分组即可既然你的逻辑已经很清晰了,剩一上的就是写个算法实现你的逻辑即可.