[.net 面向对象程序设计进阶] (2) 正则表达式(三) 表达式助手

上面两节对正则表达式的使用及.NET下使用正则表达式作了详细说明,本节主要搜集整理了常用的正则表达式提供参考。

此外为了使用方便,编写了一个《正则表达式助手》方便测试正则表达式。

1.正则表达式助手

1.1 软件概述

软件名称:

《正则表达式助手》

版本:

3.5

最后更新日期:

2015/07/04 09:22:00

作者:

YuBinfeng

运行环境:

.NET Framework 4.0及以上(常用表达式功能,需要联网,从博客园本贴中获取数据)

作者博客:

http://www.cnblogs.com/yubinfeng/p/4612670.html

技术交流QQ群:

467189533

下载地址:(点击下载)

http://files.cnblogs.com/files/yubinfeng/正则表达式助手3.5.rar

1.2 更新记录

2015/07/04 09:22:00   Version 3.5

修复未联网时,打开应用程序出错的问题。

2015/07/01 20:00:00   Version 3.1

增加输入框右键菜单

增加输入错误表达式,执行后,提示错误信息。

2015/07/01 14:01:01   Version 2.0

更新汽车车牌号码匹配、汽车发动机号匹配、颜色值匹配

修复常用列表偶尔会出现索引值不存在的BUG。

1.3 助手使用说明

正则表达式助手主要有两方法的功能:

A.一是可以执行查询和替换两种匹配方式

B.二是通过联网(主要是通过博客园本贴子的更新数据,加载常用的正则表达式,方便贴子和软件同步)

1.4 软件介绍

1.3.1 主界面

1.3.2 自动联接我的博客同步获取最新“常用正则表达式”

1.3.3 点击常用列表,可以将正则表达式加入到调试窗口

1.3.4 支持查找和替换两种模式,表达式选项支持忽略大小写、单行模式、多行模式、忽略空白和显式模式等四种。

1.3.4 关于软件更新,当有新版本时打开软件会有提示,也可以主动下载新版本

2.常用正则表达式

常用正则表达式(陆续整理中)

校验数字类

序号

说明

正则表达式

1

正数字

^[0-9]*$

2

n位的数字

^\d{n}$

3

至少n位的数字

^\d{n,}$

4

m-n位的数字

^\d{m,n}$

5

零和非零开头的数字

^(0|[1-9][0-9]*)$

6

非零开头的最多带两位小数的数字

^([1-9][0-9]*)+(.[0-9]{1,2})?$

7

带1-2位小数的正数或负数

^(\-)?\d+(\.\d{1,2})?$

8

正数、负数、和小数

^(\-|\+)?\d+(\.\d+)?$

9

有两位小数的正实数

^[0-9]+(.[0-9]{2})?$

10

有1~3位小数的正实数

^[0-9]+(.[0-9]{1,3})?$

11

非零的正整数

^[1-9]\d*$

12

非零的负整数

^-[1-9]\d*$

13

非负整数

^\d+$

14

非正整数

^-[1-9]\d*|0$

15

非负浮点数

^\d+(\.\d+)?$

16

非正浮点数

^((-\d+(\.\d+)?)|(0+(\.0+)?))$

17

正浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

18

负浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$

19

浮点数

^(-?\d+)(\.\d+)?$

校验字符类

1

中文

[\u4e00-\u9fa5]

2

英文和数字

^[A-Za-z0-9]+$

3

长度为3-20的所有字符

^.{3,20}$

4

由26个英文字母组成的字符串

^[A-Za-z]+$

5

由26个大写英文字母组成的字符串

^[A-Z]+$

6

由26个小写英文字母组成的字符串

^[a-z]+$

7

由数字和26个英文字母组成的字符串

^[A-Za-z0-9]+$

8

由数字、字母或者下划线的字符串

^\w+$ 或 ^\w{3,20}$

9

中文、英文、数字包括下划线

^[\u4E00-\u9FA5A-Za-z0-9_]+$

10

中文、英文、数字(无下划线)

^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11

可以输入含有^%&',;=?$\"等字符

[^%&',;=?$\x22]+

12

禁止输入含有~的字符

[^~\x22]+

特殊需求类

1

Email地址

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

2

域名

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

3

URL

[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

4

手机号码

^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

5

电话号码

^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$

6

验证身份证号(15位或18位数字)

^\d{15}$|^\d{18}$

7

短身份证号码(数字、字母x结尾)

^([0-9]){7,18}(x|X)?$

8

帐号是否合法(字母开头,5-16,母数字下划线)

^[a-zA-Z][a-zA-Z0-9_]{4,15}$

9

密码(字母开头,6~18,只能包含字母、数字和下划线)

^[a-zA-Z]\w{5,17}$

10

强密码(含大小写字母和数字,不含特殊字符,8-10之间)

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

11

日期格式

^\d{4}-\d{1,2}-\d{1,2}

12

一年的12个月(01~09和1~12)

^(0?[1-9]|1[0-2])$

13

一个月的31天(01~09和1~31)

^((0?[1-9])|((1|2)[0-9])|30|31)$

14

xml文件

^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$

15

双字节字符(含汉字)

[^\x00-\xff]

16

空白行的正则表达式

\n\s*\r

17

HTML标记的正则表达式

<(\S*?)[^>]*>.*?</\1>|<.*? />

18

首尾空白字符的正则表达式

^\s*|\s*$或(^\s*)|(\s*$)

19

腾讯QQ号

[1-9][0-9]{4,}

20

中国邮政编码

[1-9]\d{5}(?!\d)

15/07/01更新

1

车牌号码

^[\u4E00-\u9FA5][\da-zA-Z]{6}$

2

汽车发动机序列号

^[a-zA-Z0-9]{16}$

3

MSN号码

^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$

4

颜色数值校验(如#FF00FF)

\#[a-fA-F0-9]{6}

5

货币校验

^\d{0,}(\.\d+)?$

常用正则表达式(陆续整理中)

==============================================================================================

返回目录

 <如果对你有帮助,记得点一下推荐哦,如有

有不明白或错误之处,请多交流>

<对本系列文章阅读有困难的朋友,请先看《.net 面向对象编程基础》>

<转载声明:技术需要共享精神,欢迎转载本博客中的文章,但请注明版权及URL>

.NET 技术交流群:467189533   

==============================================================================================

[.net 面向对象程序设计进阶] (4) 正则表达式 (三) 表达式助手的更多相关文章

  1. [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门

    [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简 ...

  2. [.net 面向对象程序设计进阶] (3) 正则表达式 (二) 高级应用

    [.net 面向对象程序设计进阶] (2) 正则表达式 (二)  高级应用 上一节我们说到了C#使用正则表达式的几种方法(Replace,Match,Matches,IsMatch,Split等),还 ...

  3. [.net 面向对象程序设计进阶] (1) 开篇

    [.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...

  4. [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用

    [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...

  5. [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门

    [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习 ...

  6. [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下)

    [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下) 本篇导读: 接上篇继续介绍SVN的高级功能,即使用分支并行开发.随着需求的不断变更,新功能的增加.特别是 ...

  7. [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类

    [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...

  8. [.net 面向对象程序设计进阶] (5) Lamda表达式(一) 创建委托

    [.net 面向对象程序设计进阶] (5) Lamda表达式(一)  创建委托 本节导读: 通过学习Lambda表达式,学会创建委托和表达式目录树,深入了解Lambda的特性,让你的代码变的更加清晰. ...

  9. 【 .NET 面向对象程序设计进阶》】【 《.NET 面向对象编程基础》】【《正则表达式助手》】

    <.NET 面向对象程序设计进阶> <.NET 面向对象程序设计进阶> <正则表达式助手>

随机推荐

  1. visul studio 文件分包

    1.搜索算法. 2.软件控制逻辑. 3.自定义控件. 4.GUI模块. 5.线程化操作

  2. win10+vs2015+opencv3.0 x86/x64配置(debug+release)

    最近做一些图像识别的项目,用到了opencv,opencv3.1没有x86版本,所以只能用opencv3.0来完成,下面介绍一下在window10下vs2015 配置opencv3.0的过程(x86和 ...

  3. easyui datagrid 加载两次请求,触发两次ajax 请求 问题

    datagrid初始化的时候请求两次URL 两种情况 1. <table id="gridview" class="easyui-datagrid"> ...

  4. ajax select option 数据。为了下次方便信手拈来!!

    为了下次方便信手拈来!! 示例1 var form = document.forms["maddraddform"]; $(form.province).change(functi ...

  5. QQ邮箱发送邮件,出现mail from address must be same as authorization user错误

    之前做的一个系统,有个发送邮件的功能,一直能正常使用,今天同事说QQ邮箱发送不了. 立马着手调试,发现服务器一直出现“mail from address must be same as authori ...

  6. html5新特性之画布

    1.canvas的理解 canvas是一个矩形区域,在这个区域内,通过js可以对区域内的每一帧像素控制 2.js操作canvas对象 canvas对象.getContext("2d" ...

  7. ActionScript 3.0 自写类整理笔记(十三)——Random类

    一个简单的随机函数工具类,总共提供了9种静态方法来获取不同的随机值随便写的,如果你还有什么更好的建议,请提出来,谢谢~ index.Random类:代码:public final class Rand ...

  8. Hyper-v虚拟机文件VHDX与VHD的格式转换

    今天遇到一个坑,我在本机(windows 10)上创建的CentOS虚拟机作为docker的宿主机,部署了gitlab等容器,准备迁移到服务器上的时候,发现始终无法导入,提示必须通过Hyper-v导出 ...

  9. [转]Redis之七种武器

    长生剑.孔雀翎.碧玉刀.多情环.离别钩.霸王枪.拳头是古龙笔下的七种武器,而本文打算将Redis的几种使用方式 Strings.Hashs.Lists.Sets.Sorted Sets.Pub/Sub ...

  10. linux下配置ssledge代理服务器

    ssl edge 是一个非常好用的VPN/proxy, 比云梯 稳定快速的多.  在LINUX下开发 Titanium 需要用到各种FQ,所以它是必备工具. 1. 根据自己付费后的用户名和密码,下载 ...