前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >常用正则表达式列表

常用正则表达式列表

原创
作者头像
大师级码师
修改于 2021-10-27 07:42:58
修改于 2021-10-27 07:42:58
4060
举报
文章被收录于专栏:大师级码师大师级码师

很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,包括校验数字、字符、一些特殊的需求等等。给自己留个底,也给朋友们做个参考。

一、校验数字的表达式

  • 数字:^[0-9]*$
  • n位的数字:^\d{n}$
  • 至少n位的数字:^\d{n,}$
  • m-n位的数字:^\d{m,n}$
  • 零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
  • 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
  • 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
  • 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
  • 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
  • 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
  • 非零的负整数:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
  • 非负整数:^\d+$ 或 ^[1-9]\d*|0$
  • 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
  • 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
  • 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
  • 正浮点数:^[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]*))$
  • 负浮点数:^-([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]*)))$
  • 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校验字符的表达式

  • 汉字:^[\u4e00-\u9fa5]{0,}$
  • 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
  • 长度为3-20的所有字符:^.{3,20}$
  • 由26个英文字母组成的字符串:^[A-Za-z]+$
  • 由26个大写英文字母组成的字符串:^[A-Z]+$
  • 由26个小写英文字母组成的字符串:^[a-z]+$
  • 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
  • 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
  • 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
  • 可以输入含有^%&’,;=?$\”等字符:[^%&',;=?$\x22]+
  • 禁止输入含有~的字符:[^~\x22]+

三、特殊需求表达式

  • Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
  • 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
  • InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
  • 手机号码:^(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}$
  • 电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$
  • 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
  • 身份证号(15位、18位数字):^\d{15}|\d{18}$
  • 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
  • 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  • 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
  • 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
  • 日期格式:^\d{4}-\d{1,2}-\d{1,2}
  • 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
  • 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
  • 钱的输入格式:
    • 有四种钱的表示形式我们可以接受:”10000.00″ 和 “10,000.00″, 和没有 “分” 的 “10000″ 和 “10,000″:^[1-9][0-9]*$
    • 这表示任意一个不以0开头的数字,但是,这也意味着一个字符”0″不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$
    • 一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$
    • 这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$
    • 必须说明的是,小数点后面至少应该有1位数,所以”10.”是不通过的,但是 “10″ 和 “10.2″ 是通过的:^[0-9]+(.[0-9]{2})?$
    • 这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$
    • 这样就允许用户只写一位小数。下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
    • 1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
    • 备注:这就是最终结果了,别忘了”+”可以用”*”替代。如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里
  • xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
  • 中文字符的正则表达式:[\u4e00-\u9fa5]
  • 双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
  • 空白行的正则表达式:\n\s*\r (可以用来删除空白行)
  • HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)
  • 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
  • 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
  • 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
  • IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)
  • IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
腾讯云开发者社区招贤纳士:欢迎大家踊跃报名
云+社区是一个分享技术干货,专注打造技术影响力的开放型技术社区,同时也作为连接用户与腾讯云产品、服务、技术的平台。专栏外援团队是为对云计算感兴趣并热爱技术的你提供一个最适合的平台。在这里你可以与技术大咖近距离的交流,增强对云计算的专业知识,享受团队协作的快乐。如果你热爱技术,你有足够的业余时间,我们无限热情的欢迎你加入我们的团队!
腾讯云开发者社区
2018/01/17
9170
腾讯云开发者社区招贤纳士:欢迎大家踊跃报名
我和腾讯云开发者社区一起走过的点点滴滴
记得很清楚,我是在2019年初加入的腾讯云开发者社区,当初的社区还不叫腾讯云开发者社区,当时的社区名字叫腾讯云云+社区。当时的社区虽然功能还不够强大,文章类型还略微单一,主要以技术文为主,但是社区的开发者都很积极活跃,大家积极分享技术,一起沟通交流。
三掌柜
2023/10/31
9252
我和腾讯云开发者社区一起走过的点点滴滴
腾讯云开发者社区招募技术作者(自媒体分享计划)
作为腾讯旗下的云计算技术社区,聚集了国内云计算及各个技术领域的众多开发者, 希望更多有志于改变技术未来的人士加入我们,一起努力,一起成长!
腾讯云开发者社区
2018/05/09
4.4K2
腾讯云开发者社区招募技术作者(自媒体分享计划)
腾讯云开发者社区联盟计划
云+社区是腾讯云官方的开发者社区,为了更好地连接开发者,促进技术的传播、分享与交流,现推出“联盟计划”, 与各技术社区、博客等技术交流平台一起,构建更好的中国开发者生态。联盟成员可以获得腾讯云的免费云计算资源用于网站的正常运营,同时各社区举办线下或者线上活动,将可获得云+社区的推广、礼品赞助以及直播资源。
腾讯云开发者社区
2019/05/14
5.6K2
腾讯云开发者社区联盟计划
正式揭晓!腾讯云开发者社区2020年度优秀讲师&TOP作者榜单
回首不平凡的2020年,技术力量越来越受到重视,技术从业者的责任也越来越重大。突发事件、流量洪峰、协同开源……一轮又一轮的挑战背后,是技术从业者们默默的努力。然而,技术的发展,不仅需要默默努力,更需要站出来发声,以文字发声,以演讲发声,分享自己的实践经验,推进技术整体的进步,更是十分珍贵。 2020年,云+社区携手业界各方专家、一线开发者,真诚分享、多方交流,让技术的声音传递给更多人:在这一年里,数百位来自不同技术领域的大咖们,为我们呈现了数百场精彩纷呈的演讲;15000余名专栏作者们笔耕不辍,贡献出
腾讯云开发者
2021/01/21
2.4K1
Tutor Master招募计划
腾讯云学院是腾讯云旗下,面向广大开发者的云技术学习平台;平台联合腾讯云内部与外部资源,为开发者提供云计算、大数据、人工智能三大领域优质课程内容。
腾讯云开发者社区
2018/12/13
5200
【腾讯云开发者社区年度征文】2020征文活动获奖名单公布
由腾讯云+社区主办的云+社区 2020 年度征文活动在2020年12月31号圆满的落下帷幕。年度征文活动自2020年11月发布后,吸引了众多社区内的小伙伴。经过评委老师从产品创新性、实用性、可借鉴性和代码规范度 这四个维度的评分,加上阅读数、点赞数、评论数、收藏数、上首页次数 等维度的指标,综合得出获奖作者名单如下:
腾讯云开发者社区
2021/01/05
6.5K11
【腾讯云开发者社区年度征文】2020征文活动获奖名单公布
2024我与腾讯云开发者社区的再次邂逅
腾讯云开发者社区,是腾讯云为全球开发者打造的技术交流与学习平台,它包括开发者内容创作与分享,开发者问答互动,还给予开发者社区活动、热点征文福利,还包含热点技术及产品的展示与分享。
半月无霜
2025/01/21
990
聚焦【技术应变力】腾讯云开发者社区沙龙online重磅上线!
云加社区结合特殊时期热点,挑选备受关注的音视频流量暴增、线下业务快速转线上、紧急上线防疫IoT应用等话题,邀请众多业界专家,为大家提供连续十一天的干货分享。从视野、预判、应对等多角度,帮助大家全面提升「技术应变力」!
腾讯云开发者
2020/02/18
2.4K0
腾讯云开发者社区【玩转腾讯云】征文活动获奖名单公布
由腾讯云+社区主办的云+社区【玩转腾讯云】征文活动已经圆满顺利的落下帷幕!感谢小伙伴们对云+社区征文活动的支持!接下来,就是期待已久的开奖时刻啦。
腾讯云开发者社区
2021/05/13
3.9K2
腾讯腾讯云开发者社区「校园大使」招募开启!报名拿offer啦~
想要获得腾讯的实习offer?想要得到校园大使实习证明来提升面试竞争力?想要拥有腾讯海量定制周边公仔?那就快来报名吧~你想要的这里全都有,还有机会接触腾讯最前沿的运营方法和项目管理实践。我们等你来!
腾讯云开发者社区
2021/05/20
16.9K5
腾讯云开发者社区技术沙龙第24期回顾-物联网技术与应用(文末附PPT)
2019年7月27日,由云+社区主办的第24期云+社区技术沙龙“物联网技术及应用”,在深圳腾讯滨海大厦举行,本期沙龙邀请了腾讯云技术专家分享关于腾讯云物联网平台技术实践、边缘计算云平台服务设计与实践、物联网安全技术与实践、腾讯物联网操作系统TencentOS tiny 软件架构解析与实践以及AIoT构建边缘AI能力最佳实践等话题,与现场超过400名开发者共同探讨交流物联网相关的技术及其应用实践,现场座无虚席、交流氛围浓厚。
腾讯云开发者社区技术沙龙
2019/07/29
4.3K3
腾讯云开发者社区技术沙龙第24期回顾-物联网技术与应用(文末附PPT)
2025,祝腾讯开发者社区越来越好
2025年已至,技术的革新与需求的爆发让我们步入一个全新的时代。对于开发者而言,这不仅意味着技术更新,更是一次次迎接机遇的挑战。云计算与边缘计算、AI大模型、多模态技术的不断进步,正在重塑整个行业的发展格局。而我们,又如何在这场浪潮中找到属于自己的位置?
是山河呀
2025/01/01
1490
公众号/博客快速搬家:新邀入驻腾讯云开发者社区,福利多多!
为吸引更多优质作者加入腾讯云自媒体同步曝光计划,为社区带来更多新鲜力量。腾讯云开发者社区将对邀请新用户入驻社区的作者带来更多的福利活动。 一、入驻有礼 腾讯
腾讯云开发者社区
2020/07/08
24.6K3
技术火花闪耀江城:腾讯云开发者社区开发者大会(武汉站)圆满落幕
2019年6月2日,武汉世贸希尔顿酒店,云+社区开发者大会(武汉站)重磅开启。在武汉开发者的技术热情下,腾讯技术专家江城开讲。
TVP官方团队
2019/06/05
7.3K0
技术火花闪耀江城:腾讯云开发者社区开发者大会(武汉站)圆满落幕
重磅邀请函来了!首届“腾讯腾讯云开发者社区开发者大会”免费报名!
2018年12月15日,首届“腾讯云+社区开发者大会”即将在北京隆重举行,腾讯云邀请广大开发者共同探讨云端新技术、新能力。届时,腾讯云将邀请超过40位行业内的技术专家,超过1000名开发者参与本次盛会,分享行业经验,沉淀云端技术。
腾讯云开发者社区
2018/11/21
2.6K0
重磅邀请函来了!首届“腾讯腾讯云开发者社区开发者大会”免费报名!
腾讯云开发者社区杂货摊年终上新,定制礼盒发发发!
五谷丰登好时节,瑞雪兆迎丰收年。2020年即将度过,不管今年经历了什么样的风雨,云+社区始终作为一个温暖的港湾,和技术开发者们度过风雨,一同见证彩虹。
腾讯云开发者
2021/01/11
8691
腾讯云开发者社区杂货摊年终上新,定制礼盒发发发!
腾讯云开发者社区技术沙龙第22期回顾,围观大牛分享的干货!(内附PPT)
2019年5月25日,由云+社区主办的第22期云+技术沙龙-互联网架构,在深圳腾讯滨海大厦举行,本期沙龙邀请了腾讯的技术专家分享关于技术架构、落地实践案例、无服务器云函数架构、海量存储系统架构等话题,深度揭秘互联网架构,带来丰富的实践经验内容。
腾讯云开发者社区技术沙龙
2019/05/29
1.5K0
腾讯云开发者社区技术沙龙第22期回顾,围观大牛分享的干货!(内附PPT)
打造人类高质量极客,腾讯云开发者社区开启竞赛「寻知计划」
腾讯云+社区联合腾讯码客、腾讯安全平台部全新打造的创新赛事——腾讯极客挑战赛 | 鹅罗斯方块(以下简称“极客挑战赛”),已于8月8日圆满落幕。本次比赛共有上千家高校和企业单位的4570人报名参赛(全国赛道+腾讯赛道)。
腾讯云开发者社区
2021/08/12
3.5K18
打造人类高质量极客,腾讯云开发者社区开启竞赛「寻知计划」
腾讯云开发者社区内容推荐审核规范
关于什么是好的内容,不同的人有不同的评判标准。对社区形态的开发者聚集地而言,因对软件技术的兴趣而汇聚,并在一定之规下进行技术的分享、交流、探讨等活动,是开发者社区长久保持生命力的关键。
腾讯云开发者社区
2023/12/11
2K2
推荐阅读
相关推荐
腾讯云开发者社区招贤纳士:欢迎大家踊跃报名
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档