求一判断url的正则表达式

xierfly 2009-09-09 05:57:53
我的需求是:

比如,有如下网址:
1. http://www.xx.cn/123
2. http://www.xx.cn/123/view
3. http://www.xx.cn/123/view_1_234


【备注】所有url有可能后面跟 ?…… 其他参数;其中数字处可以变成其他数字,此处只是表意一下;

目的:
能在一个中转页面中用 正则来 判断用户访问的是哪个url。
...全文
407 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xierfly 2009-09-09
  • 打赏
  • 举报
回复
多谢各位。结贴
-过客- 2009-09-09
  • 打赏
  • 举报
回复
这样?

//判断方法
private int checkType(string src)
{
Regex reg = new Regex(@"(?i)^http://www\.xx\.cn/(\d+)(?:/([a-z]+)(_\d+)?(_\d+)?)?$");
Match m = reg.Match(src);
if (m.Success)
{
if (m.Groups[4].Value != "")
return 3;
else if (m.Groups[3].Value != "")
return 4;
else if (m.Groups[2].Value != "")
return 2;
else if (m.Groups[1].Value != "")
return 1;
}
return 0;
}
//调用
string[] urls = new string[] { "http://www.xx.cn/123", "http://www.xx.cn/123/blog", "http://www.xx.cn/123/view_1_234", "http://www.xx.cn/123/class_1" };
foreach (string s in urls)
{
richTextBox2.Text += "url:" + s.PadRight(35, ' ') + checkType(s) + "\n";
}
//输出
url:http://www.xx.cn/123 1
url:http://www.xx.cn/123/blog 2
url:http://www.xx.cn/123/view_1_234 3
url:http://www.xx.cn/123/class_1 4

xierfly 2009-09-09
  • 打赏
  • 举报
回复
或者说,针对四个类型的url,写四个正则表达式,不能互相有交集的情况出现。就行了。

其实 lxcnn 写的有点接近了
xierfly 2009-09-09
  • 打赏
  • 举报
回复
首先,感谢几位朋友的回复。

我的意思是:网址是一样的,但是变化的是后面的,
1. http://www.xx.cn/123 ----匹配返回 1
2. http://www.xx.cn/123/blog ----匹配返回 2
3. http://www.xx.cn/123/view_1_234 ----匹配返回 3
4. http://www.xx.cn/123/class_1 ----匹配返回 4

然后,我在根据返回值进行下一步操作。

其中的数字(比如123,234)只是标示一下,表示那里是会出现数字而已。不知道这下说清楚了没?
-过客- 2009-09-09
  • 打赏
  • 举报
回复
有点看不明白需求,试下吧

http://www\.xx\.cn/\d+(?:/view(?:_\d+)*)?(\?(?:[^&]+&)*[^&]+)?


红街咖啡 2009-09-09
  • 打赏
  • 举报
回复
楼主一定要固定死123/view吗。后面追加一个。
红街咖啡 2009-09-09
  • 打赏
  • 举报
回复
1.http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
2.


public bool ValidateUrl(string _strUrl)
{
string patten = @"^http://(www\.){0,1}.+\.(com|net|cn)$"; //正则表达式
Regex r = new Regex(patten); //声明一个Regex对象

Match m = r.Match(_strUrl); //使用Match方法进行匹配

if(m.Success) //匹配成功

{

return true;

}

else

{

return false;

}

}


xierfly 2009-09-09
  • 打赏
  • 举报
回复
补充:还有一个类似这样的url
4. http://www.xx.cn/123/view_1

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧