!> 正则表达式 Regular Expression 是一种描述文本规律的表达式。它也可以帮助我们轻松地查找或编辑文件的内容,甚至实现整个文件夹中所有文件的内容替换,文本处理逻辑被大大的简化了。

正则元字符

表达式 含义 示例 示例解释 备注
\ 转义符 \* 匹配 符号“*”
[] 可接收的字符列表 [abcd] a、b、c、d中任意一个字符
[^] 不可接收的字符列表 [^abcd] 除a、b、c、d外的任意一个字符,包括数字和特殊字符
| 或表达式,匹配前面或者后面的表达式 ad|cd ab或者cd
( ) 将子表达式分组 (abc) 将字符串abc作为一组
. 匹配除”\r\n”之外的任何单个字符 a..b 以a开头,b结尾,中间包括2个任意字符的长度为4的文本 若要匹配包括”\r\n”在内的任意字符,请使用诸如”[\s\S]”之类的模式
\d 匹配任何数字,如 [0-9] \d{3} 包含3个数字的字符串
\D 匹配任何非数字,如[^0-9] \D(\d)* 以单个非数字字符开头,后接任意个数字
\w 匹配单个数字、大小写字母字符,如[0-9a-zA-Z] \w{4} 长度为4的数字字母字符串
\W 匹配单个非数字、大小写字母字符,相当于[^0-9a-zA-Z] \W+ 以至少1个非数字字母字符开头
\b 匹配一个字边界,即字与空格间的位置 er\b 匹配”never”中的”er”,但不匹配”verb”中的”er” Boundary
\B 非字边界匹配 er\b 匹配”verb”中的”er”,但不匹配”never”中的”er”
\s 匹配任何空白字符,包括空格、制表符、换页符等。与 [\f\n\r\t\v] 等效。
\S 匹配任何非空白字符。与[^\f\n\r\t\v]等效。
\f 换页符匹配。如 \x0c\cL
\n 换行符匹配。等效于 \x0a\cJ
\r 匹配一个回车符。等效于 \x0d\cM
\t 制表符匹配。与 \x09\cI等效。
\v 垂直制表符匹配。与 \x0b\cK 等效。

限定符

符号 含义 示例 示例解析 备注
* 指定字符重复0次或n次 \w* 匹配任意个数字和字母组成的字符串
+ 指定字符重复1次或n次 [0-9]+ 至少1个 0-9 的数字
指定字符重复0次或1次 2(.\d)? 2开始的整数或者小数 当此字符紧随任何其他限定符(、+、?、{n}、{n,}、{n,m*})之后时,匹配模式是”非贪心的”。如,在字符串”aaaa”中,”a+?”只匹配单个”a”,而”a+”匹配所有”a”; (?模式标识) –(?i)->不区分大小写 (?s)单行匹配 (?#comment)注释
{n} 长度为n个字符 [0-9]{m} m个0-9的数字字符串
{n,} 长度为至少为n个字符 [0-9]{n,} 不少于n个0-9的数字字符串
{n,m} 长度为n至m间个数的字符 [0-9]{n,m} 不少于n个,且不多于m个0-9的数字字符串
^ 起始字符 ^\d+ 已数字开始且全部是数字的字符串
$ 结束字符 ^\d+[a-z]+$ 已数字开始且数字后面接小写字母的字符串

自表达式匹配

符号 含义 示例 示例解释
(pattern) 匹配 pattern 并捕获该匹配的子表达式。可以使用 $0…$9 属性从结果”匹配”集合中检索捕获的匹配 (1[35678][0-9])\d{4}(\d{4}) 15376562312. 匹配后 $1为153 $2为2312
(?:pattern) 匹配 pattern不捕获 该匹配的子表达式 `industr(?:y ies)` 匹配`industry
(?=pattern) 执行正向预测先行搜索的子表达式,匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配 `Windows (?=95 98 NT
(?!pattern) 执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配 `Windows (?=95 98 NT

环视

主要限制匹配文本左右两边的数据

正则 名称 含义 示例 示例解释
(?<=Y) 肯定逆序环视 左边是 Y (?<=\d+)¥ 匹配左边是数据的¥;234¥
(?<!Y) 否定逆序环视 左边不是Y (?<!\d+)¥ 匹配左边不是数据的¥;aab¥
(?=Y) 肯定顺序环视 右边是Y (?=\d+)¥ 匹配右边是数据的¥;¥234
(?!Y) 否定顺序环视 右边不是Y (?!\d+)¥ 匹配右边不是数据的¥;¥aab

起始和结束符对比

语言 起始符 结束符
java ^ $
javascript ^ $
go \A \z
python \A \Z

java示例

作者:admin  创建时间:2023-04-20 16:07
最后编辑:admin  更新时间:2024-04-03 16:45