正则表达式
创始人
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次,但尽可能少重复

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...