本小节实现利用C#的正则表达式验证一个URL字符串的合法性。一个合法的URL如下:
http://www.php.net
其构造规则为:
[协议]://[www].[域名].[com|net|org…]
根据上一小节的构造正则表达式,可以构造下面的规则:
"^http://(www\.){0,1}.+\.(com|net|cn)$"
其中,“^http://”定义能匹配规则的字符串开头是“http://”;“(www\ .)?”表示随后应该是0~1个“www”;而“.+”表示任意字符串;然后是一个“.”,转义字符“\”表明其仅仅是一个字符;最后的“(com|net|org)$”表明以com、net、org中其中一个结尾,此处,只列出这3种情况。
完成验证URL合法性的方法如下所示。
代码7-27 验证URL示例:Class1.cs
1. public bool ValidateUrl(string _strUrl)
2. {
3. string patten = @"^http://(www\.){0,1}.+\.(com|net|cn)$"; //正则表达式
4.
5. Regex r = new Regex(patten); //声明一个Regex对象
6. Match m = r.Match(_strUrl); //使用Match方法进行匹配
7. if(m.Success) //匹配成功
8. {
9. return true;
10. }
11. else
12. {
13. return false;
14. }
15. }