正则表达式快速上手

news2024/12/28 5:57:59

一、推荐个正则表达式练习网站:regex101: build, test, and debug regexicon-default.png?t=N4P3https://regex101.com/

二、正则表达式常用的几个符号

(一)限定符 

1.

表示匹配的字符串中,?前面的字符可有可无,即?前面的字符出现0次或一次。

例子:

use a used variable name is illegal.

输入used?,可以匹配use也可以匹配used,d这个字符在匹配的字符串中可以出现0次或1次。

 

 

2.

*

表示匹配的字符串中,*前面的字符可以没有也可以出现多次。

 3.

 +:

表示匹配的字符串中,+前面的字符出现一次以上

 

4. 

{}:限定花括号前面的字符出现的次数

例子:

ab{6},匹配字符串abc,其中a和c之间的b出现6次。

例子:

 ab{2,6}c:匹配abc的字符串,其中b的个数为2-6次

 

例子:

ab{2,}c: 表示匹配的abc字符串中,b的个数为2次及以上。

 

 5.

 例子:

(ab)+表示匹配ab字符串,其中ab字符串可以出现1次或多次。

 (二)或运算符

1.

|:或运算符

例子:

a (cat|dog):匹配字符串 a cat,a dog.

2.

[]:

[]符号表示,匹配的字符只能取决于方括号里的内容

例子:

匹配由abc几个字母组成的单词,可以写成[abc]+

如下图:

 

 [a-z]+:代表匹配所有的小写字符。

 [a-zA-Z]+:表示匹配所有的大小写字符。

例子如下图所示:

 [a-zA-Z0-9]+:表示匹配所有的大小写字符和数字。

例子如下图所示:

 3.

^:脱字符

如果在方括号内容的前面我们写一个尖号(脱字符),则代表要求匹配除了尖号后面列出的【以外】的字符。

(三)元字符

另外正则表达式中其实为我们预先定义好了一系列常用的字符类型,比如数字、空白符、单词开头、结尾等等,它们被称为元字符

\d:数字字符

\w:单词字符(英文、数字及下划线)

\s:空白符(包含Tab和换行符)

\D:非数字字符

\W:非单词字符

\S:非空白字符

\b:字符的边界

.:任意字符但不包含换行符

^:匹配行首,比如^a只会去匹配行首的a 

 

$:匹配行尾,比如a$只会去匹配行尾的a

 (四)贪婪与懒惰匹配

<.+>:正则表达式中默认是贪婪匹配。

 

<.+?>:加个?,会将贪婪匹配切换为懒惰匹配。

 

 1.实例1:RGB颜色值匹配

 

2. 实例2:IPv4地址匹配

前两位是25第三位取0-5之间的数;或者,第一位是2,第二位取0-4中任意的数, 第三位取0-9中任意的数;或者,第一位取0或1中的数,第二位第三位取0-9中的数,因为一位数二位数三位数都有可能,所以在第一位和第三位都加了问号。

 

 

 

 

(五)总结

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/583114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VUE3.0 路由跳转之后页面停留在上一个浏览页面位置不会回到顶部问题

方式一&#xff1a;普通用法&#xff0c;vue2.0也可用 // 一般方式路由拦截 export default {// 组件守护器beforeRouteEnter(to, from, next) {// A跳转到B&#xff0c;B页面停留在A页面的滚动位置&#xff1b;解决方法&#xff1a;将scrollTop设置为0window.scroll(0, 0);ne…

使用docker部署mysql的主从复制

前言&#xff1a; 客户需要数据库做一个备份&#xff0c;所以这次部署mysql的主从复制&#xff0c;由于测试原因两个mysql服务都安装在一台服务器上&#xff0c;实际部署中一般分开部署。 介绍&#xff1a; 用途&#xff1a; 实时灾备&#xff0c;用于故障切换读写分离&…

excel常用操作

1 基础操作 1.1 冻结首行 选中需要冻结的行&#xff0c;视图--冻结窗格&#xff0c;从而使其固定显示。

提权神器:WindowsVulnScan

简介 这是一款基于主机的漏洞扫描工具&#xff0c;采用多线程确保可以快速的请求数据&#xff0c;采用线程锁可以在向sqlite数据库中写入数据避免database is locked的错误&#xff0c;采用md5哈希算法确保数据不重复插入。 它可以实现自动化对目标主机操作系统信息收集&…

【开发者指南】如何在MyEclipse中使用 XML编辑器

XML编辑器包括高级XML编辑功能。通过本文&#xff0c;你将了解其编辑功能和网页XML编辑&#xff0c;一起来看看吧~ 1. Web XML编辑器 MyEclipse Web XML编辑器包括高级XML编辑功能&#xff0c;如: 语法高亮显示标签和属性内容辅助实时验证(在您输入时)文档内容的源视图、设计…

图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)

https://www.cnblogs.com/polly333/p/7280764.html https://www.cnblogs.com/polly333/p/7280764.html https://www.cnblogs.com/polly333/p/7280764.html 一、图像增强算法原理 图像增强算法常见于对图像的亮度、对比度、饱和度、色调等进行调节&#xff0c;增加其清晰度&a…

LinuxShell编程

Shell编程 Shell的概念介绍 命令解释器 Shell是命令解释器(command interpreter)&#xff0c;是Unix操作系统的用户接口&#xff0c;程序从用户接口得到输入信息&#xff0c;shell将用户程序及其输入翻译成操作系统内核&#xff08;kernel&#xff09;能够识别的指令&#x…

【音视频处理】H264/H265详解,为什么H264更常用?

大家好&#xff0c;欢迎来到停止重构的频道。 本期我们介绍视频编码格式H264。 H264是视频画面最常用的编码格式了&#xff0c;几乎所有的播放器都支持这个编码格式&#xff0c;当然浏览器也不例外。 我们按这样的顺序讨论H264 &#xff1a; 1、 编码格式的作用 2、 I帧…

4:File类与IO流

文章目录 File类1&#xff1a;引入&#xff1a;2&#xff1a;对文件进行操作3&#xff1a;对目录/文件夹进行操作 IO流1&#xff1a;引入&#xff1a;2&#xff1a;字符输入 / 出流FileReader 与 FileWriter3&#xff1a;用try - catch - finally 处理异常4&#xff1a;几个常见…

易趋受邀出席CIAS 2023中国数智汽车峰会

2023年5月18日-19日&#xff0c;由中国电子商会、中国汽车信息化推进产业联盟、信息侠联合主办&#xff0c;上海市交通工程协会、 浙江省数字经济联合会联合支持的CIAS 2023第二届中国数智汽车峰会在杭州千岛湖顺利召开。易趋受邀出席此次会议&#xff0c;并发表了主题演讲。 &…

软件架构: 一切皆有代价

软件架构必须随着业务发展而演进&#xff0c;否则就会成为业务的阻碍。但架构本身在发展过程中很容易逐渐腐化&#xff0c;堆积大量技术债务&#xff0c;因此在软件发展过程中始终保持架构愿景非常重要。原文: Software architecture — Paying the Price for Neglecting it 在…

数组的玩法比我以为的要多

数组是最基本的数据结构&#xff0c;关于数组的面试题也屡见不鲜&#xff0c;本文罗列了一些常见的面试题&#xff0c;仅供参考。目前有以下18道题目。 数组求和 求数组的最大值和最小值 求数组的最大值和次大值 求数组中出现次数超过一半的元素 求数组中元素的最短距离 求…

2023.05.28 homework

求三角形最长的边的长度 1&#xff09;任意两边之和大于第三边&#xff1b; 2&#xff09;任意两边之差小于第三边&#xff1b; 已知最短边13cm&#xff0c;其他两边肯定都等于大于13cm&#xff0c;两边只差肯定要小于13cm&#xff1b;简单推导就是枚举呗。 13cm 14cm 33cm&a…

web --- javascript(01)-- 介绍、变量和数据类型

JavaScript w3c&#xff1a;三层分离 结构层&#xff1a;HTML 表示层&#xff1a;CSS 行为层&#xff1a;JavaScript 介绍 &#xff08;1&#xff09;作用&#xff1a; 数据校验网页特效数据交互服务器端编程&#xff08;NodeJS&#xff09; &#xff08;2&#xff09;javas…

【PS小贴士】PS项目交货(CNS0/VL02N)-和销售订单交货(VL01N/VL02N)的区别点

目前一家公司在进行企业信息化建设&#xff0c;作为PS顾问有幸参与到其中。真是做的项目越来越多&#xff0c;经历的人越来越多&#xff0c;每个项目的感触也不同。不论是方案&#xff0c;还是项目上一起努力的小组成员、以及项目组顾问。哈哈哈哈哈哈哈哈...... 同样&#xf…

Linux 系统上的库文件生成与使用

1.库文件 库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在&#xff1a;/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。 库有两种&#xff0c;一种是静态库&#xff0c;其…

分享几个国内免费可用的ChatGPT镜像【无需梯子】

文章目录 1.什么是ChatGPT2.ChatGPT的基础技术3.ChatGPT工作原理4.ChatGPT应用场景5.ChatGPT局限性6.ChatGPT的未来发展7.国内免费ChatGPT镜像写在最后 ChatGPT国内能用吗&#xff1a;ChatGPT在国内是无法使用的。你肯定要问我怎样才能体验到ChatGPT的神奇魔力呢&#xff1f;文…

【Spring】— 映射文件

映射文件 映射文件是MyBatis框架中十分重要的文件。在映射文件中&#xff0c;<mapper>元素是映射文件的根元素&#xff0c;其他元素都是它的子元素。映射文件中的主要元素如下所示。 <mapper><!--映射查询语句&#xff0c;可自定义参数&#xff0c;返回结果集…

Python日期带时区转换工具类总结

文章目录 1.背景2. 遇到的坑3. 一些小案例3.1 当前日期、日期时间、UTC日期时间3.2 昨天、昨天UTC日期、昨天现在这个时间点的时间戳3.3 日期转时间戳3.4 时间戳转日期3.5 日期加减、小时的加减 4. 总结5. 完整的编码 1.背景 最近项目是国际项目&#xff0c;所以需要经常需要用…

docker 解析DNS失败

问题现象&#xff1a; 我之前在docker里部署的容器&#xff0c;今天突然访问不了了&#xff0c;一开始我以为是容器的问题&#xff0c;将容器restart&#xff0c;销毁重建&#xff0c;都没有解决。 最后准备重启docker service&#xff0c;在重启之前&#xff0c;看了一眼dock…