首页 > 其他分享 >正则表达式笔记

正则表达式笔记

时间:2025-01-07 11:43:47浏览次数:1  
标签:10 数字 字符 正则表达式 18 zA 笔记 Za

一、校验数字的表达式
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*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

 

12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非负整数:^\d+$ 或 ^[1-9]\d*|0$

 

14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

 

15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

 

16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

 

17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

 

18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

 

19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、校验字符的表达式
1 汉字:^[\u4e00-\u9fa5]{0,}$

 

 2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

 

 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 由数字、26个英文字母或者下划线组成的字符串:^\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 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

 

 3 InternetURL:[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 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
 6 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

 

 7 身份证号(15位、18位数字):^\d{15}|\d{18}$

 

 8 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

 

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

 

10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$

 

11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 

 

12 日期格式:^\d{4}-\d{1,2}-\d{1,2}

 

13 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$

 

14 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

 

15 钱的输入格式:

 

16 有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$

 

17 这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$

 

18 一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$

 

19 这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$

 

20 必须说明的是,小数点后面至少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$

 

21 这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$

 

22 这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

 

23 1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

 

24    备注:这就是最终结果了,别忘了"+"可以用"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里

 

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

 

26 中文字符的正则表达式:[\u4e00-\u9fa5]

 

27 双字节字符:[^\x00-\xff]    (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
28 空白行的正则表达式:\n\s*\r    (可以用来删除空白行)

 

29 HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />    (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)
30 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$)    (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)

 

31 腾讯QQ号:[1-9][0-9]{4,}    (腾讯QQ号从10000开始)

 

32 中国邮政编码:[1-9]\d{5}(?!\d)    (中国邮政编码为6位数字)

 

33 IP地址:\d+\.\d+\.\d+\.\d+    (提取IP地址时有用)

34 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))   

标签:10,数字,字符,正则表达式,18,zA,笔记,Za
From: https://www.cnblogs.com/azwz/p/18657345

相关文章

  • Fast-DDS源码阅读笔记(四)-participant是如何创建的
    Publisher的创建与发送消息发送消息的流程如下DomainParticipant的创建DomainParticipantFactory该实例管理着当前进程创建的所有DomainParticipant,UML类图如下其中的participants_存储着DomainID到对应的Participant之间的映射DomainParticipant创建的DomainParticipa......
  • C++学习笔记#01——指针与链表
    在自学C++的时候,发现指针是一个很难绕开的东西,看了一些参考资料和别人的程序,写一些垃圾。Part1指针指针是一个指向一片内存地址的变量,相当于家的门牌号。我们即可以通过变量名来访问一个变量,也可以通过它对应的地址来访问。就像你的老师可以点你的名字找你,也可以找你宿舍的门......
  • vivado学习笔记1211
                      ......
  • 二项式 & 容斥原理学习笔记
    容斥原理先从容斥原理开始。容斥原理的结论如下:\[|\bigcup\limits_{i=1}^{n}S_{i}|=\sum\limits_{m=1}^{n}(-1)^{m-1}\sum\limits_{a_{i}<a_{i-1}}|\bigcap_{i=1}^{m}S_{a_{i}}|\]证明的思路是考虑一个元素在每一个\(\bigcap\limits_{i=1}^{m}S_{a_{i}}\)......
  • 线段树优化 dp 学习笔记
    到底是什么算法让我觉得两道题就足以让我写一篇学习笔记呢?虽然两年半以前写过一道dp,正解的优化是单调队列,但是我拿线段树过了(卡着空间过的),所以那个dp并不能叫线段树优化dp。CF115ELinearKingdomRaces这个算是最“原汁原味”线段树优化dp。设\(dp_{i,j}\)表示第\(j\)......
  • HTML 个人笔记
    介绍HTML(hypertextmarkuplangage)超文本标记语言主要用于描述网页的结构和内容学习HTML主要学习HTML标签以及标签对应的属性,标签就是一些特殊的符号比如img图片标签(属性src,width,height,alt,tilte),在网页中显示图片a超链接标签(属性href,target),实现网页的跳转......
  • CSS 个人笔记
    介绍HTML(hypertextmarkuplangage)超文本标记语言主要用于描述网页的结构和内容学习HTML主要学习HTML标签以及标签对应的属性,标签就是一些特殊的符号比如img图片标签(属性src,width,height,alt,tilte),在网页中显示图片a超链接标签(属性href,target),实现网页的跳转......
  • c#笔记(2)
    c#程序是一组类型声明C#程序或DLL的源代码是一组类型声明,这些类型声明定义了程序或库的结构、行为以及如何与外部环境交互命名空间是一种将相关类型声明分组并命名的方法,因此通常在作者创造的命名空间内部声明程序类型c#program(1)c#程序由一个或多个类型声明组成。Console......
  • c# 笔记(1)
    理论扩展:win32apic++使用Windows操作系统的基础编程接口32window的基石不能面对对象.dllMFC微软基础类库MFC以c++封装了windowapi得以面向对象开发window程序.dllCOM的英文全称是,ComponentObjectModel组件对象模型 .dll优点:在任意两个组件之间进行通信不用考......
  • 正则表达式{}和(),pyhton里的正则表达式,函数findall解析
    前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......