2025年5月21日 星期三 乙巳(蛇)年 二月廿三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > .net

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

时间:06-27来源:作者:点击数:56

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

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

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

推荐一个不错的网站:在线正则表达式测试

/*

说明:

1、下面的正则都是以^开头,以$结尾,说明是把整个字符串拿来匹配。

2、下面的正则表达式前都应该加@,例如:bool reg = Regex.IsMatch("35_ab", @"^[0-9a-zA-Z_]{1,}$");

3、左括号和右括号不要滥用。

4、形如[0-9]这样的表示中最好不要有空格,例如不宜写成[0 - 9]。

*/

可以用下面的控制台程序进行正则表达式的验证:

  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Text.RegularExpressions;
  • namespace Console_regex
  • {
  • class Program
  • {
  • static void Main(string[] args)
  • {
  • bool l = Regex.IsMatch("_65_", @"^[0-9a-zA-Z_]{1,}$");
  • if (l ==true)
  • {
  • Console.WriteLine("匹配正确");
  • }
  • else
  • {
  • Console.WriteLine("匹配错误");
  • }
  • Console.ReadKey();
  • }
  • }
  • }
  • 1.由数字、26个英文字母或者下划线组成的字符串:
  • ^[0-9a-zA-Z_]{1,}$
  • 2.非负整数(正整数+0): +表示出现重复1次或多次
  • ^\d+$
  • 3.正整数:中间的[0 - 9] 后面没有*,说明至少有一位19的数字
  • ^[0-9]*[1 - 9][0 - 9]*$
  • 4.非正整数(负整数 + 0):|是或运算,也可以将最外面的一层()剥掉,写作^(-\d+)|(0+)$
  • ^((-\d+)|(0+))$
  • 5.负整数 :由于中间那个[1 - 9] 后面没有*,所以至少有一个19之间的数,所以-0000这样的数据也不能通过
  • ^-[0-9]*[1 - 9][0 - 9]*$
  • 6.整数: 由于-后面有?(表示重复0次或1次),所以-号是可有可无的,因此可以表示全体整数
  • ^-?\d+$
  • 7.正整数或非负浮点数(正浮点数 + 0):+表示出现重复1次或多次,? 表示重复0次或1
  • ^\d+(\.\d+)?$
  • 8.正浮点数 :匹配三类,包括0.098700.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,后面匹配00.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地址 :匹配xh6300@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.电话号码:开头34位数字或者不写,短横杠-写或者不写,后面78位数字
  • ^(\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,因为含有&,如果要验证字符^该怎么办?^表示取反
  • [%&',;=?$\\]+

1、由数字、26个英文字母、下划线或汉字的正则表达式

2、正则表达式30分钟入门教程

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门