C# 正则表达式判断IP,URL等及其解释
C# 正则表达式判断IP,URL等及其解释
判断IP格式方法:
- public static bool ValidateIPAddress(string ipAddress)
- {
- 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])$");
- return (ipAddress!=""&&validipregex.IsMatch(ipAddress.Trim()))?true:false;
- }
正则表达式分析:
- ^(([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的匹配。
当然这是较简单的写法,也可以简写成:
- ^(((\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:
- ((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:
- (\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等及其解释的更多相关文章
- 正则表达式 判断IP 数字
1.正则表达式 public static bool checkIP(string strIP) { //string regex = @"^(2[0-4]\d | 25[0-5] | [0 ...
- 正则表达式 判断 ip:端口 形式
<html> <head> </head> <body> ip:port<input type="" name="z ...
- 正则表达式判断ip地址
html: <div class="configuration"><form action="" name="myformcon&q ...
- QT正则表达式---针对IP地址
判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(/ ...
- Java正则表达式验证IP,邮箱,电话
引言 java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是合法,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,废话不多说,下面就是上代码. 1:判断是否是正确的IP 1 ...
- C# 正则表达式判断是否是有效的文件、文件夹路径
C# 正则表达式判断是否是有效的文件.文件夹路径 省流 /// <summary> /// 是否有效的文件,文件夹路径 /// </summary> /// <param ...
- ip校验方法:判断ip是否位于指定的范围内
import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.reg ...
- iOS - 正则表达式判断邮箱、身份证..是否正确:
iOS - 正则表达式判断邮箱.身份证..是否正确: //邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex ...
- js判断IP js判断域名
<html> <head> <script language="javascript" type="text/javascript" ...
随机推荐
- Drools 7.4.1.Final参考手册(六) 用户手册
用户手册 基础 无状态的知识Session Drools规则引擎拥有大量的用例和功能,我们要如何开始?你无须担心,这些复杂性是分层的,你可以用简单的用例来逐步入门. 无状态Session,无须使用推理 ...
- To Chromium之浏览器外框UI(2)
之前一些文章本来是草稿状态,一次性全release出来了,排版上可能看上去不太舒服,等哪一天研究下改改排版. Here继续chromium的UI,看看,浏览器的外壳是怎么被画出来的:) 可以先关注下几 ...
- 基于Thinkphp5+phpQuery 网络爬虫抓取数据接口,统一输出接口数据api
TP5_Splider 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨 ...
- Redis--各个数据类型最大存储量
原文地址:https://redis.io/topics/data-types Strings类型:一个String类型的value最大可以存储512M Lists类型:list的元素个数最多为2^3 ...
- winspool.drv
public partial class Form1 : Form{ [System.Runtime.InteropServices.DllImportAttribute("winspool ...
- P4467 [SCOI2007]k短路
题目描述 有 n 个城市和 m 条单向道路,城市编号为 1 到 n .每条道路连接两个不同的城市,且任意两条道路要么起点不同要么终点不同,因此 n 和 m 满足 m \le n(n-1)m≤n(n−1 ...
- RDMA
什么是RDMA? 来源 https://blog.csdn.net/u011459120/article/details/78469098 1. 概述 RDMA是Remote Direct Memor ...
- 洛谷 P2801 教主的魔法 解题报告
P2801 教主的魔法 题目描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.--.N. ...
- Splunk学习与实践
一. Splunk公司与产品 美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣.总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心, ...
- Angular 监听路由变化
var app = angular.module('Mywind',['ui.router']) //Angular 监听路由变化 function run($ionicPlatform, $loca ...