正则表达式是什么
校验数据的有效性、查找符合要求的文本以及对文本进行切割和替换等操作。
正则表达式的目的是真正的强大之处就在于可以查找符合某个规则的文本。
(资料图)
元字符
1.特殊字符串
. 除换行符外任意字符\d 表示任意单个数字 \w 表示任意单个数字或字母或下划线\s 表示任意单个空白符\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左尖括号代表看左边,没有尖括号是看右边,感叹号是非的意思。
常用正则Demo
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式:[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}$
关键词:
-
study - 一文入门正则表达式|世界热点
如图所示的正则,将日期和时间都括号括起来。这个正则中一共有两个分组,日期是第1个,时间是第2个。
-
移动流量怎么赠送2022_移动流量怎么赠送
1、在手机桌面上找到移动掌上营业厅,打开,如下图所示。2、想看更多精彩,请点击我登录,如下图。3、然后填写你的手机号“G
-
【当前独家】泽连斯基下令绝不后退,俄军立刻轰炸10座大城市,乌全境再次飘红
就拿当前乌军在巴赫穆特的情况来看,几乎可以说是没啥抵抗能力了,大量乌军士兵在这段时间都选择撤退,显然关于巴赫穆特的控制权被俄军掌控这
-
3月9日洛凯股份发布公告,其股东减持7.6万股-天天看热讯
3月9日洛凯股份发布公告《洛凯股份:持股5%以上股东减持股份结果公告》,其股东上海添赛电气科技有限公司于2022年12月
-
刑事拘留期间时间怎么计算 全球快资讯
一、刑事拘留期间时间怎么计算刑事拘留期间时间从犯罪嫌疑人被拘留开始计算:1 一般情况下应当在3日内提请检查院批捕,检查院
-
大班语文试卷简单_大班语文试卷
1、学前班语文试卷wgh一、听写笔画名称。2、(10分)二、听写生字。3、(10分)三、把下面的字去掉一笔,变成另一个字
-
cad临时文件保存在哪里_cad临时文件怎么恢复
1、首先点击文件,然后选择【选项】,这个时候点击【路径 文件】。2、在里面找到【自动备份】,打开后我们就可以看到自动备份
-
美标插头零火线标志_美标插头
今天小编肥嘟来为大家解答以上的问题。美标插头零火线标志,美标插头相信很多小伙伴还不知道,现在让我们一起来看看吧!1、由于美国电压是110V
-
在家可做的正规兼职平台_在家做的兼职平台
1、小说录入……。本文到此分享完毕,希望对大家有所帮助。
-
张柏芝罕晒混血母亲,母女俩眉眼如复制粘贴,与亲弟游泳素颜惊艳
张柏芝罕晒混血母亲,母女俩眉眼如复制粘贴,与亲弟游泳素颜惊艳,素颜,记者,张柏芝,张柏文
-
理文造纸(ADR)(LMPMY.US)3月8日收盘报4.3美元/股-全球今头条
截至2023年3月8日(美国东部时间)收盘,理文造纸(ADR)(LMPMY US)报收于4 3美元 股,上涨0 0%,成交量0 0股。
-
excel值大于0正常显示,小于0显示0_天天热点评
1、自定义格式:[10]1!0;0。本文到此分享完毕,希望对大家有所帮助。
-
白矿油多少钱一吨_白矿油|世界聚看点
1、是以无味无毒精制矿油为基础油,加入多种功能添加剂调制而成,产品具有良好的防锈性、水置换性,油膜薄、油基稳定性好,均匀
-
3月15日起,白云国际机场停车场停车15分钟内免收费
3月15日起,白云国际机场停车场停车15分钟内免收费
-
苹果nfc怎么使用_nfc怎么使用
1、操作:开启NFC功能——然后开启“安卓光束”功能——两部手机可以同时触摸,显示传输文件的操作方法。2、操作:需要在手
-
橄榄油可以预防妊娠纹吗_怎么样可以去除妊娠纹
1、妊娠纹最常见于腹部和腿部,是由于肾上腺分泌过多,真皮的弹性纤维被拉断而形成纹路。2、对于妊娠纹的去除疗法,最好的方案
-
louis royer是什么酒 全球观热点
louisroyer的全称是路易·鲁瓦耶(即路易老爷),是一种白兰地。LouisRoyer酒厂是法国排名在前十位的白兰地厂商。创办于1853年的路易老爷Loui
-
焦点报道:关山核心新增一批住宅+商业,效果图曝光!
搜狐焦点获悉,维佳·关山郡项目方案批前公示信息出炉,项目位于雄楚大道与关山大道交汇处(K11对面)。据了解,维佳·关山郡营销中心已开放,
-
tds_说一说tds的简介_今日关注
夏弥来为大家解答以下的问题,tds,说一说tds的简介,现在让我们一起来看看吧!1、总溶解固体(英文:Totaldis
-
安徽牛肉板面 独家焦点
1、牛肉板面发源于安徽省阜阳市太和县,属于徽菜系,由安徽羊肉板面演化而来。2、以爽口、耐嚼、香中泛辣、辣中透香为特点。文