校验数据的有效性、查找符合要求的文本以及对文本进行切割和替换等操作。
正则表达式的目的是真正的强大之处就在于可以查找符合某个规则的文本。
1.特殊字符串
【资料图】
\D \W \S,意思正相反。
2.空白符
\r 回车符\n 换行符\f 换页符\t 制表符\v 垂直制表符\s 任意空白符3.量词
* 代表0次到多次+ 1次到多次? 0到1次{m} 出现m次{m,} 出现至少m次{m,n} m到n次4.范围
|或 ,如ab|bc
代表ab或bc... 多选一,括号中任意单个元素a-z 匹配a-z之间任意单个元素^.. 取反,不能包括括号中的任意单个元素xy{1,3}+yz
注意: Python 和 Go 的标准库目前都不支持独占模式。
(“.+?”)|\w{2,6}
如图所示的正则,将日期和时间都括号括起来。这个正则中一共有两个分组,日期是第 1 个,时间是第 2 个。
1.不保存子组
分组的作用就是后续可能还会被引用到,但是如果不需要引用的时候可以添加不保存子组,表达式(?:xxx)
,优点是正则性能会更好,在子组计数时也更不容易出错。
2.括号嵌套
...略
1.不区分大小写模式(Case-Insensitive)
不区分大小写模式,正则表达式(?i)cat
,这样匹配的字符就不区分大小写了
如果我们想要前面匹配上的结果,和第二次重复时的大小写一致,那该怎么做呢?我们只需要用括号把修饰符和正则 cat 部分括起来,加括号相当于作用范围的限定,让不区分大小写只作用于这个括号里的内容。正则表达式((?i)cat)
2.点号通配模式(Dot All)
元字符里讲.
可以匹配除了换行以外的任何元素,用单行模式中使用.
,正则表示式(?s).
3.多行匹配模式
多行模式的表达式(?m)^...|...$
,这样的匹配好处是每一行
断言是指对匹配到的文本位置有要求。
1.单词边界
在准确匹配单词时,我们使用 \b...\b
就可以实现了,也可以指定表达式的开头和结尾^...$
2.环视
环视的主要是定义清晰的边界。
(?<=Y)
,左边是Y(?<=!Y)
,左边不是Y(?=Y)
,右边是Y(?!Y)
,右边不是Y左尖括号代表看左边,没有尖括号是看右边,感叹号是非的意思。
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式:[u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空白行的正则表达式:ns*r匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />
匹配首尾空白字符的正则表达式:^s*|s*$
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
( 匹配形式如 0511-4405222 或 021-87888822)匹配中国邮政编码:[1-9]d{5}(?!d)
匹配身份证:d{15}|d{18}
2.匹配特定数字:
匹配正整数^[1-9]d*$
匹配负整数 ^-[1-9]d*$
匹配整数 ^-?[1-9]d*$
匹配非负整数(正整数 + 0)^[1-9]d*|0$
匹配非正整数(负整数 + 0)^-[1-9]d*|0$
匹配正浮点数 ^[1-9]d*.d*|0.d*[1-9]d*$
匹配负浮点数 ^-([1-9]d*.d*|0.d*[1-9]d*)$
匹配浮点数 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
匹配非负浮点数(正浮点数 +0) ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
匹配非正浮点数(负浮点数 + 0)^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$
3.匹配特定字符串:
匹配由26个英文字母组成的字符串^[A-Za-z]+$
匹配由26个英文字母的大写组成的字符串 ^[A-Z]+$
匹配由26个英文字母的小写组成的字符串 ^[a-z]+$
匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$
匹配由数字、26个英文字母或者下划线组成的字符串 ^w+$
只能输入数字:^[0-9]*$
只能输入n位的数字:^d{n}$
只能输入至少n位数字:^d{n,}$
只能输入m-n位的数字:^d{m,n}$
只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$
只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
只能输入有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
只能输入非零的正整数:^+?[1-9][0-9]*$
只能输入非零的负整数:^-[1-9][0-9]*$
只能输入长度为3的字符:^.{3}$
只能输入由26个英文字母组成的字符串:^[A-Za-z]+$
只能输入由26个大写英文字母组成的字符串:^[A-Z]+$
只能输入由26个小写英文字母组成的字符串:^[a-z]+$
只能输入由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
只能输入由数字、26个英文字母或者下划线组成的字符串:^w+$
验证用户密码:^[a-zA-Z]w{5,17}$
正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。验证是否含有^%&"",;=?$"等字符:[^%&"",;=?$x22]+
只能输入汉字:^[u4e00-u9fa5],{0,}$
验证Email地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
验证InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
验证电话号码:^((d{3,4})|d{3,4}-)?d{7,8}$
标签:
如图所示的正则,将日期和时间都括号括起来。这个正则中一共有两个...
1、全新英朗共有18t和15n两大车型系列。2、18t车型搭载1 4ldvvt涡...
今天,苹果正式发表讲话并确认了它必须处理义务的计划。尽管仅在欧...
2023年03月09日08时呼和浩特今日疫情最新动态消息及呼和浩特出行进...
天津北方网讯:2023年3月8日,近日气温回升春日和暖,本市北运河两...
1、windows10系统中关闭windows自动更新步骤如下:按键盘上的“Wind...
火影忍者图标怎么弄,腾讯游戏火影忍者ol怎么点亮图标很多人还不知...
时代的改变让我们的生活越来越有质量,以前人们都需要为了自己的一...
1、常规情况下砂砾卵石土天然密度ρ:砂子的堆积密度是细砂1400Kg m...
3月8日*ST紫晶(688086)收盘价4 35元,收盘上涨18 21%,全天换手率...
1、中国乒乓球队成立于1952年,中国乒乓球队队训是“你不要这一分,...
征信报告如今越来越重要,在客户申请贷款、报考岗位甚至就业的时候...
截至2023年3月8日收盘,深圳燃气(601139)报收于7 2元,下跌0 14%...
1、艾弗拉姆·诺姆·乔姆斯基(AvramNoamChomsky,1928年12月7日—...
1、bytheway[英][baiðəwei][美][baɪðiwe]顺便地,附带说说;顺便一提;例句:
有容乃大本意是比喻像大海一样的宽广胸襟。这是以大海能容纳无数江...
》》》天津南开区老年大学电话+地址联系电话:27375700、27275733、...
1、苹果手机设置深色模式的话,首先要在手机设置里面把手机设置为深...
1、在实际系统中,完全消除码间串扰是十分困难的,而码间串扰对误码...
长沙晚报掌上长沙3月7日讯(全媒体记者尹玮)随着直播经济的日渐走...
1、旬阳县天门山位于旬阳双河镇水洞村与关口镇大庙村交界处,距离县...
3月7日,嘉实策略混合最新单位净值为1 093元,累计净值为2 343元...
1、日本邮船株式会社(NYK)是日本三大海运公司之一,为三菱财阀(...
对谈双方:大学生汪瑾,湖南大学新闻与传播学院播音与主持艺术专业...
3月6日上午,普陀区创建全国文明城区誓师动员大会召开。石泉路街道...
1、对于女生要求唐骏在西太平洋大学学位证书上签名的要求,唐骏微笑...
本文转自【央广网】;3月5日提请十四届全国人大一次会议审议的政府...
1、恒力石化(大连)有限公司成立于2010年03月17日。2、地址位于辽...
1、手机由于功能所限手没有可以压缩图片资源大小的软件。2、仅仅就...
⭐三八妇女节有加班费吗?答:据《劳社厅函〔2000〕18号》文件规定...