[.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. 搭建高可用mongodb集群(三)—— 深入副本集内部机制

    在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...

  2. 自己对Extjs的Xtemplate的忽略

    之前学习extjs Xtmeplate受一些书籍的误导,说Xtemplate不支持else ,今天仔细看了官网的示例,才恍然大悟,卧槽!不仅支持if-elseif-else结构 连switch都能够支 ...

  3. URI和URL、URN区别

    URI不能读取/写入资源,这是统一的资源定位器(URL)的任务.URL是一种URI,它的schema是已知的网络协议,并且它把URI与某种协议处理程序联系起来(一种与资源通讯的读/写机制).URI一般 ...

  4. 用Java导出为excel表格

    导出的是最基础的excel表格,没有任何样式. <input type="button" value="输出到Excel" onclick='output ...

  5. MAC PRO 的网关在哪里

    mac pro的网关就是路由器地址. 1.路由器在系统偏好设置里 2.双击点开此图标 选中1.然后点击高级设置 3.选中TCP/IP,然后查看自己的路由器后边的数字,就是你的mac网关号 4.IPV4 ...

  6. 广义Euler常数

    对于区间(a,b)内f''(x)>0 那么在该区间内函数的一阶导数对应切线在该区间内只与f(x)在切点相交 1. f''(x)>0那么可知 f'(x)在该区间内是单调增的 以下图为例,过( ...

  7. 三种Scriptlet总结

    什么是Scriptlet? 在JSP中,Scriptlet称为脚本小程序,所欲嵌套在HTML代码中的Java程序都必须使用Scriptlet标记出来. 第一种:<% %> 在此Script ...

  8. css3 风车旋转

    <style> .box{width:400px;height:400px;margin:100px auto;transition:1s;} .box div{width:180px;h ...

  9. Ubuntu系统网卡IP配置方法

    主要文件为:/etc/network/interfaces 在没有任何配置的情况下,其内容为以下两行: auto loiface lo inet loopback 配置网口为动态获取IP的,在末尾加上 ...

  10. Xcode 升级成Xcode 8 版本以后,出现 Signing for "sqlite3--test" requires a development team. 问题的解决

    升级xcode到8版本以后,工程文件会出现以下提示 解决办法就是,点击Team,添加自己的appid,然后选择自己的appid即可, 注意: 这里不需要开发者账号,自己的 apple id,就可以”: