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. npm安装不成功的原因

    使用npm安装electron不成功的解决方法 使用npm安装electron不成功的解决方法 根据官网提供的electron的npm安装方法,使用下面的命令进行安装,结果不成功 npm instal ...

  2. kvm-1

    yum install libvirt* virt-* qemu-kvm* -y systemctl start libvirtd.service systemctl status libvirtd. ...

  3. Pro Git - 笔记1

    Getting Started About Version Control Local Version Control Systems Centralized Version Control Syst ...

  4. hadoop worldcount小程序

    首先在hadoop中建立input文件夹放几个文件,里边写点东西.比如我放了三个,分别写的是 第一个 hello hadoop bye hadoop 第二个 hello world bye world ...

  5. 总结const

    int b; const int  *a=&b; int const * a=&b; int * const a =&b; const int *const a=&b; ...

  6. 在submit_bio处使用stapn

    想着在submit_bio的地方,发现在guru模式下,stap是经常性地把内核整挂呀,不得已,也没有发现stap什么比较好的调试方法,所以索性直接使用stap的语法了,但是发现有问题呢,有的时候bv ...

  7. 【考试记录】4.8 Path (网络流 —— 劲题)

    手抄代码 + 学习指针 + 冥思苦想一晚上终于——在一瞬间开窍了.果然题目都是这样:突破了一个点,一切都是柳暗花明. 题面描述: 样例: 这道题目,首先注意到给定的边的性质:这些边在平面上构成了一棵树 ...

  8. MySQL自增属性auto_increment_increment和auto_increment_offset

    MySQL的系统变量或会话变量auto_increment_increment(自增步长)和auto_increment_offset(自增偏移量)控制着数据表的自增列ID. mysql> sh ...

  9. SQL语言:结构化查询语言

    SQL语言:结构化查询语言 程序员或者DBA(数据库管理员)使用SQL和DBBSM进行交互,操纵数据库中的资源 分类: 1.DDL 数据定义语言 结构 create  创建   database ta ...

  10. Angular 表单验证 基础篇

    <div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...