study - 一文入门正则表达式

首页>焦点 > 正文
2023-03-07 16:20:13

来源:腾讯云

正则表达式是什么

校验数据的有效性、查找符合要求的文本以及对文本进行切割和替换等操作。


(相关资料图)

正则表达式的目的是真正的强大之处就在于可以查找符合某个规则的文本。

元字符

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}$

标签:

THE END
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表热讯制鞋网的观点和立场。

相关热点

新华社电 上海市文化和旅游局近日发布《上海市密室剧本杀内容备案管理规定(征求意见稿)》,并截至12月8日面向社会公众广泛征求意见。这
2021-11-19 13:46:03
《中国证券报》17日刊发文章《备战2022 基金经理调仓换股布新局》。文章称,距离2021年结束仅剩一个多月,基金业绩分化明显。部分排名靠前
2021-11-19 13:46:03
交通运输部办公厅 中国人民银行办公厅 中国银行保险监督管理委员会办公厅关于进一步做好货车ETC发行服务有关工作的通知各省、自治区、直
2021-11-19 13:45:58
新华社北京11月17日电 题:从10月份市场供需积极变化看中国经济韧性新华社记者魏玉坤、丁乐读懂中国经济,一个直观的视角就是市场供需两端
2021-11-19 13:45:58
全国教育财务工作会议披露的消息称,2020年,中国国家财政性教育经费投入达4 29万亿元,占GDP总量的4 206%,我国国家财政性教育经费支出占G
2021-11-19 13:45:48
如果你也热爱“种草”,前方高能预警!让你心心念念、“浏览”忘返的网络平台,可能早已成为一块块“韭菜地”。近日,据《半月谈》报道,有...
2021-11-19 13:45:48
日前,工业和信息化部印发《“十四五”信息通信行业发展规划》(以下简称《规划》),描绘了未来5年信息通信行业的发展趋势。《规划》指出...
2021-11-19 13:45:40
本报讯(中青报·中青网记者 周围围)2021年快递业务旺季正式拉开帷幕。国家邮政局监测数据显示,仅11月1日当日,全国共揽收快递包裹5 69
2021-11-19 13:45:40
人民网曼谷11月17日电 (记者赵益普)17日上午,中国援柬埔寨第七批200万剂科兴新冠疫苗抵达金边国际机场。当天,柬埔寨政府在机场举行了
2021-11-19 13:45:35
金坛压缩空气储能国家试验示范项目主体工程一角受访者供图依托清华大学非补燃压缩空气储能技术,金坛压缩空气储能项目申请专利百余项,建立
2021-11-19 13:45:35
视觉中国供图42亿立方米据有关部门预计,今年山西煤炭产量有望突破12亿吨,12月份山西外送电能力将超过900万千瓦,今冬明春煤层气产量将达4
2021-11-19 13:44:34
14省份相继发布2021年企业工资指导线——引导企业合理提高职工工资今年以来,天津、新疆、内蒙古、陕西、西藏、山东、江西、山西、福建、四
2021-11-19 13:44:34
中新网客户端北京11月18日电 (记者 谢艺观)“一条路海角天涯,两颗心相依相伴,风吹不走誓言,雨打不湿浪漫,意济苍生苦与痛,情牵天下喜
2021-11-19 13:44:31
近日,交通运输部等三部门发布《关于进一步做好货车ETC发行服务有关工作的通知》。通知提到,对不具备授信条件的用户,商业银行可在依法合
2021-11-19 13:44:31
欧莱雅面膜陷优惠“年度最大”风波 涉及该事件集体投诉超6000人次美妆大牌双十一促销翻车?近日,因预售价格比双十一现货贵出66%,欧莱雅
2021-11-19 13:44:13
43 6%受访者会在工作两三年后考虑跳槽54 3%受访者认为跳槽对个人职业发展有利有弊如今对不少年轻人来说,想对一份工作“从一而终”不太容易
2021-11-19 13:44:13
超八成受访青年表示如有机会愿意开展副业 规划能力最重要64 4%受访青年指出做副业跟风心态最要不得如今,“身兼数职”已成为年轻人当中的
2021-11-19 13:44:01
发展氢能正当其时【科学随笔】氢能是一种二次能源,它通过一定的方法利用其他能源制取,具有清洁无污染、可储存、与多种能源便捷转换等优点
2021-11-19 13:44:01
“千杯不醉”的解酒“神药”能信吗?专家:网红“解酒药” 其实不算药俗话说,“酒逢知己千杯少”,酒一直是国人饭桌上至关重要的存在。尽...
2021-11-19 13:43:57
最新文章

相关推荐