这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
今天继续~
正则表达式
正则表达式语法
^ - 匹配输入字符串的开始位置
$ - 匹配输入字符串的结束位置
* - 零次或多次匹配前面的字符或表达式(zo* 匹配z或者zoo)
+ - 一次或多次匹配前面的字符或表达式(zo+匹配zo或zoo)
? - 零次或一次匹配前面的字符或表达式(y(ou)?匹配y或者you中的y)
{n} - 非负整数,代表正好匹配n次(o{2}与Bob不匹配,与food匹配)
{n,} - 非负整数,至少匹配n次(o{2}与Bob不匹配,与foooood匹配)
{n,m} - 非负整数,n<=m,至少匹配n次,至多匹配m次
? - 例如(0+?)匹配oooo,如果不加问号会匹配所有o,加了问号只会匹配一个o
(content) - 捕获内容并匹配表达式
(?:content) - 匹配但不捕获表达式
(?=content) - 例子Windows(?=95|2000)会匹配Windows 2000但不会匹配Windows 156
(?!content) - 反过来,例子Windows(?=95|2000)会匹配Windows 156但不会匹配Windows 2000
x|y - 匹配x或者y
[xyz] - 字符集,匹配任一字符,[abc]匹配plain里面的a
[^xyz] - 反向匹配,匹配不包含的,[^abc]匹配plain里面的plin
[a-z] - 字符范围,匹配指定范围内的任何字符,比如a-z就是匹配所有小写字母
[^a-z] - 反过来,匹配不到指定范围内的任何字符
\b - 匹配字的边界,例如"er\b"能匹配never的er,不能匹配verb中的er
\B - 上一个反过来,不匹配字的边界
\cx - 匹配控制字符,例如\cM就是ctrl+M
\d - 数字字符匹配,[0-9]
\D - 反过来,[^0-9]
\f - 换页符匹配
\n - 换行符匹配
\r - 匹配一个回车符
\s - 匹配任何空白字符
\S - 匹配任何非空白字符
\t - 制表符匹配
\v - 垂直制表符匹配
\w - 匹配任何字类字符,包括下划线,[A-Za-z0-9]
\W - 与任何非单词字符匹配
\xn - 匹配n,n是一个十六进制转码,只有两位
\num - 匹配num,num是一个正整数,例如(.)\1就是匹配两个连续的相同
\n - 标识一个八进制转义码或反向引用。如果 \n 前面至少有 n 个捕获子表达式,那么 n 是反向引用。否则,如果 n 是八进制数 (0-7),那么 n 是八进制转义码
\nm - 标识一个八进制转义码或反向引用。如果 \nm 前面至少有 nm 个捕获子表达式,那么 nm 是反向引用。如果 \nm 前面至少有 n 个捕获,则 n 是反向引用,后面跟有字符 m。如果两种前面的情况都不存在,则 \nm 匹配八进制值 nm,其中 n 和 m 是八进制数字 (0-7)
\nml - 当 n 是八进制数 (0-3),m 和 l 是八进制数 (0-7) 时,匹配八进制转义码 nml
\un - 匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符。例如,\u00A9 匹配版权符号 (©)
能力有限,最后四个没怎么看懂。。。也是过一遍有印象就行
今天就学到这,大家晚安~