asp.net中匹配URL网址的正则表达式
%<本人做的是asp.的项目,内容是阻止一个文本框中的某些URL>%
,正则表达式
String check = @"((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})(/[a-zA-Z0-9\&%_\./-~-])?";
关于该正则表达式的说明
①该正则表达式匹配的字符串必须以http://、https://、ftp://开头;
②该正则表达式能匹配URL或者IP地址;(如http://.baidu. 或者 http://192.168.1.1)
③该正则表达式能匹配到URL的末尾,即能匹配到子URL;(如能匹配http://.baidu./s?wd=a&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&inputT=1236)
④该正则表达式能够匹配端口号;
阻止某些指定的URL
如果我们在输入的文本框中要阻止http://.baidu.这个URL,传统的方法是用上面的正则表达式去匹配文本框中的URL,读出所有的URL之后在跟要阻止的URL去比较,这种方法有一个弊端,就是我们读出的URL是一直到子URL,而我们在配置文件中可能就写一个母URL,这样要对check出来的URL进行切割,加上网站默认的端口号是80,我们要去比较端口号等等,我想出了一种新的方法
从配置文件中读出要阻止的URL,组成一个正则表达式,去匹配文本框中,如果能够匹配到,则阻止掉。
配置文件中应该写<add key="DomainCheckBlackUrl" value="baidu." />
在代码中实现
现在一个正则表达式由3部分组成
1正则表达式的开头,可能由任意的字符组成;
2正则表达式的中间部分从配置文件中读出来的部分;
3正则表达式的结尾部分:可能有一些子目录或者端口号等;
,从配置文件中读出URLstring[] serverlist = ConfigurationManager.AppSettings["DomainCheckBlackUrl"].Split(',');(配置文件中以“,”分割)
,string start = @"((http|ftp|https)://)([a-zA-Z0-9_-]+\.)";(正则表达式的开头)
然后,正则表达式的结尾 end = @"(:[0-9]{1,4})?((/[a-zA-Z0-9\&%_\./-~-])|(?=[^a-zA-Z0-9\.]))";
组合之后的正则表达式 string check = start + @"((?<=[^a-zA-Z0-9])(" + CutStr + "))" + end;
以上是本人的一些小见解,希望对大家能有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程