regexp】 正则表达式【golang】


单字符:

. 任意字符(标志s==true时还包括换行符)

[xyz] 字符族

[^xyz] 反向字符族

\d Perl预定义字符族

\D 反向Perl预定义字符族

[:alpha:] ASCII字符族

[:^alpha:] 反向ASCII字符族

\pN Unicode字符族(单字符名),参见unicode包

\PN 反向Unicode字符族(单字符名)

\p{Greek} Unicode字符族(完整字符名)

\P{Greek} 反向Unicode字符族(完整字符名)

结合:

xy 匹配x后接着匹配y

x|y 匹配x或y(优先匹配x)

重复:

x* 重复>=0次匹配x,越多越好(优先重复匹配x)

x+ 重复>=1次匹配x,越多越好(优先重复匹配x)

x? 0或1次匹配x,优先1次

x{n,m} n到m次匹配x,越多越好(优先重复匹配x)

x{n,} 重复>=n次匹配x,越多越好(优先重复匹配x)

x{n} 重复n次匹配x

x*? 重复>=0次匹配x,越少越好(优先跳出重复)

x+? 重复>=1次匹配x,越少越好(优先跳出重复)

x?? 0或1次匹配x,优先0次

x{n,m}? n到m次匹配x,越少越好(优先跳出重复)

x{n,}? 重复>=n次匹配x,越少越好(优先跳出重复)

x{n}? 重复n次匹配x

分组:

(re) 编号的捕获分组

(?Pre) 命名并编号的捕获分组

(?:re) 不捕获的分组

(?flags) 设置当前所在分组的标志,不捕获也不匹配

(?flags:re) 设置re段的标志,不捕获的分组

边界匹配

^ 匹配文本开始,标志m为真时,还匹配行首

$ 匹配文本结尾,标志m为真时,还匹配行尾

\A 匹配文本开始

\b 单词边界(一边字符属于\w,另一边为文首、文尾、行首、行尾或属于\W)

\B 非单词边界

\z 匹配文本结尾

转义序列:

\a 响铃符(\007)

\f 换纸符(\014)

\t 水平制表符(\011)

\n 换行符(\012)

\r 回车符(\015)

\v 垂直制表符(\013)

\123 八进制表示的字符码(最多三个数字)

\x7F 十六进制表示的字符码(必须两个数字)

\x{10FFFF} 十六进制表示的字符码

* 字面值'*'

\Q...\E 反斜线后面的字符的字面值


腾图小抄 SCWY.net v0.03 小抄561条 自2022-01-02访问364275次