正则表达式简略记录

news/2024/7/2 23:32:51

1、元字符:

. ------- 匹配除换行符外的任意字符
\w ------- 匹配字母或数字或下划线或汉字
\s ------- 匹配任意的空白符
\d ------- 匹配数字
\b ------- 匹配单词的开始或结束
^ ------- 匹配字符串的开始
$ ------- 匹配字符串的结束

2、字符转义 \

3、重复次数{}

* ------- 重复零次或更多次
+ ------- 重复一次或更多次
? ------- 重复零次或一次
{n} ------- 重复n次
{n,} ------- 重复n次或更多次
{n, m} ------- 重复n次到m次

4、字符类[]

[aeiou] --------------- 匹配a,e,i,o,u中的任意字符
[.?!]-------------------- 匹配.,?,!中的任意字符
[0-9]------------------- 匹配0-9中的任意数字
[a-z0-9A-Z]---------- 匹配a-z0-9A-Z中的任意数字
(?0\d{2}[)-]?\d{8}

5、分支条件—从左往右进行|

0\d{2}-\d{8}|0\d{3}-\d{7}
(?0\d{2})?[-]?\d{8}|0\d{2}[-]?\d{8}

6、分组()

(\d{1,3}.){3}\d{1,3}
((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

7、反义

\W \ 匹配任意不是字母或数字或下划线或汉字的字符
\S \ 匹配任意不是空白符的字符
\D \ 匹配任意非数字的字符
\B \ 匹配不是单词的开始或结束的位置
[^x] \ 匹配除了x以外的任意字符
[^abc] \ 匹配除了abc以外的任意字符

8、后向引用

捕获 (exp) \ 匹配exp,并捕获文本到自动命名的组里
捕获 (?exp) \ 匹配exp, 并捕获文本到名称为name的组里
捕获 (?:exp) \ 匹配exp, 不捕获匹配的文本,也不给此分组分配组号
零宽断言 (?=exp) \ 匹配exp前的位置
零宽断言 (?<=exp) \ 匹配exp后面的位置
零宽断言 (?!exp) \ 匹配后面不是跟着exp的位置
零宽断言 (?<!exp) \ 匹配前面不是exp的位置
注释 (?#comment)

9、零宽断言

查找某些内容之前或之后的东西,也就是说他们像\b,^,$那样用于指定一个位置,这个位置满足一定的条件(即断言)—零宽断言
断言用来声明一个应该为真的事实。正则表达式中只有断言为真时才会继续进行匹配。
(?=exp) \b\w+(?=ing)\b,匹配ing结尾的单词的前面部分。
(?<=exp) (?<=\bre)\w+\b, 匹配以re开头的单词的后半部分
((?<=\d)\d{3})+\b

10、贪婪匹配和懒惰匹配

a.*b \a开始b结束的最长字符
a.*b? \ a开始b结束的最短字符

*? \ 重复任意次,但尽可能少的重复
+? \ 重复一次或多次,但尽可能少的重复
?? \ 重复零次或一次,但尽可能少的重复
{n, m}? \重复n到m次,但尽可能少的重复
{n,}? \重复n次以上,但尽可能少的重复

11、注释

(?#comment) 2[0-4]\d(?#200-249)|250-5|[01]?\d\d?(?#0-199)

12、平衡组/递归匹配

(?‘greap’)
(?‘-greap’)
(?(group)yes|no)
(?!)


http://lihuaxi.xjx100.cn/news/1380076.html

相关文章

-jar和 javaagent命令冲突吗?

当使用 -jar 命令运行 Java 应用程序时&#xff0c;Java 虚拟机 (JVM) 会忽略任何设置的 -javaagent 命令。这是因为 -jar 命令会覆盖其他命令行选项&#xff0c;包括 -javaagent。 这是因为 -jar 命令是用于运行打包为 JAR 文件的 Java 应用程序的快捷方式。它会忽略其他命令…

Mybatis快速入门,Mybatis的核心配置文件

Mybatis快速入门 一、Mybatis简介1.1Mybatis简化JDBC 二、Mybatis快速入门2.1创建user表&#xff0c;添加数据2.2创建模块&#xff0c;导入坐标2.3编写Mybatis核心配置文件 --> 替换连接信息&#xff0c;解决硬编码问题2.4编写SQL映射文件 --> 统一管理sql语句&#xff0…

Python 基础总结

title: Python 基础总结 date: 2023-07-19 10:51:55 tags: Python categories:Python cover: https://cover.png feature: false 1. print() 函数 1.1 基础使用 # 输出数字 print(23) print(11.323)# 输出字符串 print(你好) print("你好")# 输出表达式 print(3 *…

Mysql适用于初学者的前期入门资料

文章目录 前言一、SQL语句分类二、SQL语句的书写规范三.数据库操作四、MySQL字符集1、问题① 五、UTF8和UTF8MB4的区别六、数据库对象七、数据类型八、表的基本创建1、创建表2、查看表3、删除表4、修改表结构5、复制表的结构 九、数据库字典十、表的约束1、非空约束(NOT NULL)2…

JavaScript逻辑运算符

not运算符&#xff08;!&#xff09; 反着来and运算符&#xff08;&&&#xff09; 全true才trueor运算符&#xff08;||&#xff09; 全false才false 举例 const hasDriversLicense true; const Drinking false;console.log(hasDriversLicense && Drinking…

STM32 串口基础知识学习

串行/并行通信 串行通信&#xff1a;数据逐位按顺序依次传输。 并行通信&#xff1a;数据各位通过多条线同时传输。 对比 传输速率&#xff1a;串行通信较低&#xff0c;并行通信较高。抗干扰能力&#xff1a;串行通信较强&#xff0c;并行通信较弱。通信距离&#xff1a;串…

关于Android系统休眠跟串口读写的联系

问题描述&#xff1a;设备在进行rtk定位时&#xff0c;模块会通过串口同时进行读写操作。串口在读写时&#xff0c;如果息屏系统就会进入休眠&#xff0c;休眠的话CPU进入kill cpu状态。但是此时串口还在读写&#xff0c;这就导致出现一个意料外的问题&#xff0c;息屏只十几秒…

Python-正则表达式(给同事培训篇2)

本篇依旧是我在公司给同事培训的内容&#xff0c;与上一篇类似&#xff0c;不过本篇会内容偏简单&#xff0c;会多讲两种。一起看看&#xff1b; 数据 datas """ [16:45:18]2 [16:45:18]# cap: 13, 12, 11 [16:45:18]cap: 13, 12, 11 [16:45:18]cap: 13, 12, 1…