C# 正则表达式判断IP,URL等及其解释

判断IP格式方法:

  1. public static bool ValidateIPAddress(string ipAddress)
  2. {
  3. Regex validipregex=new Regex(@"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$");
  4. return (ipAddress!=""&&validipregex.IsMatch(ipAddress.Trim()))?true:false;
  5. }

正则表达式分析:

  1. ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

IP中每个十进制数,“|”号划分了5种情况:①0~9   ②10~99   ③100~199   ④200~249   ⑤250~255

{n}表示恰好匹配了n次。  \.){3}表示每个十进制数加'.'重复三次。最后加上最后一个十进制数即完成对IP的匹配。

当然这是较简单的写法,也可以简写成:

  1. ^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})(1\d{2})|(2[0-4]\d)|(25[0-5]))$

任意数字重复1-2次,及0~99 ,其他均是对第一个表达式进行了缩写。C#中务必加上首尾的^和$,否则上述方法匹配-1.1.1.1这样的IP也会返回True。

其他常用正则表达式:

URL:

  1. ((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://www.baidu.com 或者 http://192.168.1.1)

③:该正则表达式能匹配到URL的末尾,即能匹配到子URL;(如能匹配:http://www.baidu.com/s?wd=a&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&inputT=1236)

④:该正则表达式能够匹配端口号;(URL部分转载自点击打开链接)

E-mail:

  1. (\w+\.) * \w+@(\w+\.)+[A-Za-z]+

\w匹配任何字母或数字  \W匹配除字母和数字外任何字符   \S匹配任何非空字符(除空格,换行,制表符等)

*表示匹配0或多次   +表示1或多次    .匹配任何除了\n以外的字符    ?匹配0次或1次

贪婪模式和懒惰模式

(abc)de(fg)

对于上面的字符串如果使用(.*)匹配,会得到(abc)满足,(abc)de(fg)同样满足,因为正则默认的是贪婪模式,会在得到第一个匹配项后进行回溯,尽量多的匹配满足条件的项,为了解决这个问题,可以使用(.*?)表达式,在+或*后面加上?,就会在懒惰模式下进行匹配,得到第一个匹配项后不进行回溯,得到尽可能少的匹配项。

原文连接:http://blog.csdn.net/sinat_21731599/article/details/46045631

C# 正则表达式判断IP,URL等及其解释的更多相关文章

  1. 正则表达式 判断IP 数字

    1.正则表达式 public static bool checkIP(string strIP) { //string regex = @"^(2[0-4]\d | 25[0-5] | [0 ...

  2. 正则表达式 判断 ip:端口 形式

    <html> <head> </head> <body> ip:port<input type="" name="z ...

  3. 正则表达式判断ip地址

    html: <div class="configuration"><form action="" name="myformcon&q ...

  4. QT正则表达式---针对IP地址

    判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(/ ...

  5. Java正则表达式验证IP,邮箱,电话

     引言     java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是合法,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,废话不多说,下面就是上代码. 1:判断是否是正确的IP  1 ...

  6. C# 正则表达式判断是否是有效的文件、文件夹路径

    C# 正则表达式判断是否是有效的文件.文件夹路径 省流 /// <summary> /// 是否有效的文件,文件夹路径 /// </summary> /// <param ...

  7. ip校验方法:判断ip是否位于指定的范围内

    import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.reg ...

  8. iOS - 正则表达式判断邮箱、身份证..是否正确:

    iOS - 正则表达式判断邮箱.身份证..是否正确: //邮箱 + (BOOL) validateEmail:(NSString *)email {     NSString *emailRegex ...

  9. js判断IP js判断域名

    <html> <head> <script language="javascript" type="text/javascript" ...

随机推荐

  1. JAVA的文件操作【转】

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  2. 软件工程项目组Z.XML会议记录 2013/11/20

    软件工程项目组Z.XML会议记录 [例会时间]2013年11月20日星期三21:00-22:00 [例会形式]小组讨论 [例会地点]学生公寓3号楼会客厅 [例会主持]李孟 [会议记录]李孟 会议整体流 ...

  3. 【积累】根据CheckBox的不选中 ,用JQuery 清除 RidaoButtonList 的选中项

    如题,项目要求无刷新更新数据. 1)Web页面布局 Html以及效果图  

  4. asp.net Forms登录核心方法

    登录核心方法: private void Signin(string curUserId) { System.Web.Security.FormsAuthenticationTicket tk = , ...

  5. Alpha冲刺(7/10

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 学会了POSTMAN的使用,对后端已经完成的接口进行了收发消息正确性的验证 推 ...

  6. SRM709 div1 Xscoregame(状压dp)

    题目大意: 给定一个序列a,包含n个数(n<=15),每个数的大小小于等于50 初始时x = 0,让你每次选a中的一个数y,使得x = x + x^y 问如何安排选择的次序,使得最终结果最大. ...

  7. BZOJ4476 送礼物

    这道题真是有趣呀. 其实就是一个分数规划问题,用一个二分加log来得去掉分母. 分四种情况讨论 1.lenth > L && num ( max ) > num ( min ...

  8. 【题解】ZJOI2010贪吃的老鼠

    %%%%真的好强...看题解我都看了好久才完全明白.放一下参考的博客,谢谢神犇QAQ 1号博客    2号博客(超级赞的啦) 因为理解的过程太艰辛,所以必须记录一下这道强题:这道题目最难的两个约束就在 ...

  9. BZOJ_day???

    哇哈哈哈哈,这周能不能保持这个呢?

  10. MySQL使用笔记(三)表的操作

    By francis_hao    Dec 11,2016 表的操作 表的操作有创建表.查看表.删除表和修改表 创建表 创建表之前要在某个数据库中. mysql> create table ta ...