正则表达式
创始人
2024-01-21 04:18:29
0

正则表达式的匹配机制:

字符集:

[ X ]表示匹配X
[^X]表示不匹配X
[A-X]表示匹配范围A-X
[02457] 匹配 0 2 4 5 7
[01234] 匹配 0 1 2 3 4   等价于[0-4]
[0-9]   匹配 0-9
[^0-9]  不匹配 0-9
[a-z]   匹配 a-z
[^a-z]  不匹配 a-z
[a-zA-Z]匹配 a-z A-Z  

量词:

m{X}表示匹配X次
m{X,Y}最下匹配X次,最多匹配Y次
m?匹配0次或1次  相当于m{0,1}
m+至少匹配1次    相当于m{1,}

m*

匹配0次或多次 相当于m{0,}
5{1}       匹配一次[5-9]{1}   匹配一次5{1,5}     最少一次,最多五次[1-9]{1,}  最少一次[a-z]?     0次或一次    {0,1}[A-Z]+     至少匹配一次 {1,0}[a-zA-Z]*  0次或多次    {0,}

 字符集的字符和缩写

\t   \v制表符水平,竖直
\r  \n回车和换行
\xhhhh  \0ooo表示16进制数,8进制数
.匹配任何字符
\d   \D匹配一个数字,匹配一个非数字
\s  \S匹配一个空格,匹配一个非空格
\w  \W匹配一个单词,匹配一个非单词
\\\
\%%
\^^
\n反向引用  \1、 \2等,把前面的分组赋值个\1、\2
\t\n[123]?\w  匹配 水平制表 换行 [123]匹配0个或1个 匹配一个单词
\%\^\\        匹配  %^\
\d{5}         匹配5个数字
\d\s{5}       匹配1个数字和5个字符
.*            匹配任意字符0个或多个

 断言:

^匹配开头
$匹配结尾
\b字符边界
\B非字符边界
(?=E)尾部匹配则为true
(?!E)尾部不匹配为true
(?<=E)头部匹配
  (?头部不匹配
^9\w{10} 匹配9接10个字符开头
1111$    匹配1111结尾的
\babcd\b 匹配abcd这个单词断言的使用
\w+(?=tion) 判断是否是tion结尾
\w+(?!tion) 判断是否不是tion结尾
(<=tion)\w+ 判断是否是tion开头
(

通配符:

?匹配单个字符
*匹配0个或多个字符
[]字符集可以用方括号表示,类似于完整的正则表达式
*.txt  匹配.txt 文件

分组:

()分组
(\w)     表示一个分组
(\w)(\w) 自动命名分组,第一个为1,第二个为2
(?'GG'\w*))定义一个名为 GG的分组

分组和反向引用的例子:

(\w+)\s\1   匹配  Hellow Hellow  \1 代表(\w+)的内容
(\d+)\s(\d+)\s\1\s\2  
匹配 1111 2222 1111 2222
\1代表第一个(\d+)
\2代表第二个(\d+)(?\w+)\s+\k   \k 代表(?\w+)

 

|分支条件,匹配左边或右边
(ab|cd)  要么匹配ab 要么匹配cd
\转义字符

需要转义的字符:$ (  )  *  +  .  [  ]  ?  \  {  }  |

\?\[\}  匹配?[}

 贪婪和懒惰:

  • 贪婪:匹配尽可能长的字符串
  • 懒惰:匹配尽可能短的字符串
  • 懒惰模式的启用只需在重复元字符之后加?既可
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...