C#中不同格式数据校验的正则表达式

网上经常看到用正则表达式校验数据的文章,有的虽然总结得很全,但是大多数都没有经过严格验证,错误较多。

本文包含三十余条不同格式数据校验的C#正则表达式,一般均附有说明,且在Visual Studio里面跑过。

正则表达式基本规则对照表:

/*
说明:
1、下面的正则都是以^开头,以$结尾,说明是把整个字符串拿来匹配。
2、下面的正则表达式前都应该加@,例如:bool reg = Regex.IsMatch("35_ab", @"^[0-9a-zA-Z_]{1,}$");
3、左括号和右括号不要滥用。
4、形如[0-9]这样的表示中最好不要有空格,例如不宜写成[0 - 9]。

*/

1.由数字、26个英文字母或者下划线组成的字符串:
    ^[0-9a-zA-Z_]{1,}$

2.非负整数(正整数+0): +表示出现重复1次或多次
    ^\d+$

3.正整数:中间的[0 - 9] 后面没有*,说明至少有一位1到9的数字
    ^[0-9]*[1 - 9][0 - 9]*$

4.非正整数(负整数 + 0):|是或运算,也可以将最外面的一层()剥掉,写作^(-\d+)|(0+)$
    ^((-\d+)|(0+))$

5.负整数 :由于中间那个[1 - 9] 后面没有*,所以至少有一个1到9之间的数,所以-0000这样的数据也不能通过
    ^-[0-9]*[1 - 9][0 - 9]*$

6.整数: 由于-后面有?(表示重复0次或1次),所以-号是可有可无的,因此可以表示全体整数
    ^-?\d+$

7.正整数或非负浮点数(正浮点数 + 0):+表示出现重复1次或多次,? 表示重复0次或1次
    ^\d+(\.\d+)?$

8.正浮点数 :匹配三类,包括0.0987、00.0987以及00100.0987的形式,主要考虑不能含0,即没有00.000这种
    ^([0-9]+\.[0-9]*[1 - 9][0 - 9]*)|([0-9]*[1 - 9][0 - 9]*\.[0-9]+)$

9.非正浮点数(负浮点数 + 0):前面匹配负浮点数和形如-00.000这样的0,后面匹配0和0.00这样的0,? 表示重复0次或1次
    ^((-\d+(\.\d+)?)|(0+(\.0+)?))$

10.负浮点数 :中间这个或运算|是否需要呢?
    ^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+))$

11.浮点数 :不对,感觉应该是^-?\d+\.\d+$
    ^(-?\d+)(\.\d+)?$

12.由26个英文字母组成的字符串 :  +表示出现重复1次或多次
    ^[A-Za-z]+$

13.由26个英文字母的大写组成的字符串 :
    ^[A-Z]+$

14.由26个英文字母的小写组成的字符串 :
    ^[a-z]+$

15.由数字和26个英文字母组成的字符串 :[A-Za-z0-9]
中是或的关系,也就是只要出现大写字母、小写字母或数字都行
    ^[A-Za-z0-9]+$

16.由数字、26个英文字母、汉字或者下划线组成的字符串 :  匹配字母或数字或下划线或汉字,注意不能有空格或其他特殊字符
    ^\w+$

17.email地址 :匹配[email protected]163.
com和xh.tuce @qq.com这两类格式的邮箱(.不同),且可以有中文和短横杠-,注意中括号里的项是或的关系
    ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

18.url:  url的开头可以是http或者ftp、file等,url中可以有短横杠-,\? 是对问号的转义,\S(\s的反义)匹配任意不是空白符的字符
    ^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$

19.电话号码:开头3或4位数字或者不写,短横杠-写或者不写,后面7或8位数字
    ^(\d{3,4}-?)?\d{7,8}$

20.IP地址:匹配思想是先匹配XXX,再将.XXX重复3次
    ^(25[0-5]|2[0-4]
[0-9]|1[0-9]
[0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4]
[0-9]|1[0-9]
[0-9]|[0-9]{1,2})){3}$

21.匹配中文字符的正则表达式:不含中文标点。如果只判断字符串是否含中文(而不要求全部由中文组成),可以写作[\u4e00-\u9fa5]
    ^[\u4e00-\u9fa5]+$

22.匹配首或尾空格的正则表达式:
    ^(\s)|(\s)$    

23.匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
    ^[a-zA-Z][a-zA-Z0-9_]{4,15}$    

24.匹配腾讯QQ号:一般的QQ号最少5位,最多11位,首位不能为0
    ^[1-9][0-9]{4,10}$

25.只能输入数字:
    ^[0-9]+$

26.只能输入n位的数字:
    ^\d{n}$

27.只能输入至少n位的数字:
    ^\d{n,}$

28.只能输入m ~n位的数字:
    ^\d{m,n}$

29.只能输入零和非零开头的数字:这个正则不支持00或者002这样的数据
    ^(0|[1-9][0-9]*)$

30.只能输入有两位小数的正实数:
    ^[0-9]+\.[0-9]{2}$

31.只能输入有1~3位小数的正实数:
    ^[0-9]+\.[0-9]{1,3}$

32.只能输入非零的正整数:支持45或者+4895这样的表示,不支持+09或者0087这样的表示
    ^\+?[1-9][0-9]*$

33.只能输入非零的负整数:不支持-098这样的表示
    ^\-[1-9][0-9]*$

34.只能输入长度为3的字符串:支持“我爱你”这3个汉字的字符串,一个汉字是一个字符
    ^.{3}$

35.只能输入由数字和26个英文字母组成的字符串:
    ^[A-Za-z0-9]+$

36.只能输入由数字和26个英文字母、下划线或汉字组成的字符串:\w表示匹配字母或数字或下划线或汉字
    ^\w+$

37.验证是否包含有 %&‘,;=?$\"等字符:输入09&输出是true,因为含有&,如果要验证字符^该怎么办?^表示取反
    [%&‘,;=?$\\]+

http://blog.csdn.net/plutus_sutulp/article/details/21242679
http://deerchao.net/tutorials/regex/regex.htm

时间: 2024-10-28 11:56:43

C#中不同格式数据校验的正则表达式的相关文章

Hadoop中的CRC数据校验文件

错误分析: 今天在A程序中生成了数据,然后将A结果数据作为B的输入数据,在查看A结果数据时候,发现有一条数据不符合规则,遂将其删除,删除后执行B程序则报错.尝试打断点,发现程序连map过程都不执行,到了 job.waitForCompletion(true);这一步之后直接就报错了,错误信息为: org.apache.hadoop.fs.ChecksumException: Checksum error: file:/E:/hdpSapce/web_log/out/golden/part-m-0

分析html格式数据,根据正则表达式获取所需数据,并存入数据库

例子为获取<dl>中的<dt></dt><dd></dd>中的内容,由于在<dt></dt>标签中还存在<a>标签,所有会一同举例说明.第一次做不够优化,共同学习. <!DOCTYPE html> <html> <head> <title><title> </head> <body> <dl class="hel

Android中XML格式数据的简单使用

源码: package com.wangzhu.demo; import java.io.IOException; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.

StringMVC 中如何做数据校验

步骤一:引入四个jar包 步骤二:注册类型转换器 <context:component-scan base-package="cn.happy.controller"></context:component-scan> <!-- 配置验证器 --> <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalVal

Go net/http获取body中json格式数据

package main import ( "encoding/json" "fmt" "io/ioutil" "net/http" ) type AutotaskRequest struct { RequestID string `json:"requestid"` Clone CloneModel `json:"clone"` Push PushModel `json:"p

Oracle中对XML格式数据的操作,CLOB类型转换XMLType类型

今天遇到个问题,关于Oracle中xml格式数据的操作. 问题记录:需求上明确该字段类型为xmltype,要做的是解析该字段,但是由于数据库设计人员的问题,某些表中的该字段类型设计成了Clob类型. 解决方法: xmltype类型解析很容易:使用extractvalue函数即可,用法: select column_name1,column_name2,extractvalue(column_name3,'/nodeName1/nodeName2/nodeName3') from table; c

Struts2(五)数据校验

一.概述 在提交表单数据时,如果数据需要保存到数据库,空输入等可能会引发一些异常,为了避免引起用户的输入引起底层异常,通常在进行业务逻辑操作之前,先执行基本的数据校验. 下面通过两种方式来阐述Struts 2的数据校验功能. 二.重写validate方法 我们编写的Action一般继承与ActionSupport,而ActionSupport不仅实现了Action接口,还实现了Validatable接口,提供了数据校验功能.在Validatable接口中定义一个validate方法,重写该方法,

iOS开发之JSON格式数据的生成与解析

本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据?  JSON格式取代了xml给网络传输带来了很大的便利,但是却没有了xml的一目了然,尤其是json数据很长的时候,我们会陷入繁琐复杂的数据节点查找中.这时我们就需要一款在线校验工具 BeJson. 一.JSON是什么? JSON(JavaScript Object Notation) 是一种轻量级的

struts2中服务器端数据校验

数据校验指对数据合法性进行检查,根据验证数据的位置可以分为客户端验证和服务器端验证,今天随笔主要写的是实现服务器端的数据验证,服务器端数据验证主要特点: ·数据提交后在服务器端验证 ·防止绕过客户端验证提交的非法数据 ·可以在服务器端处理数据前保证数据的合法性 Struts2中有两种实现服务器端验证的方式. 一.       使用ActionSupport编码实现验证 在Action类的方法中直接验证 在Action 类中直接进行校验是一种最为原始的方法,这里作为了解,首先是action 类中的