1.通配符
\d 数字 \D反之
\w 数字 字母 下划线 \W反之
\s 空格 制表符 \S反之
\b 匹配一个零宽单词边界,如一个字母与一个空格之间。
s代表一个字符 但b是定位符
. 任意单个字符
2.自定义通配符
[abcd] 单个字符 abcd
[0-9a-z] 单个字符 0到9 a到z
[0-] 单个字符 0或者-
() 一个字符序列的整体,同时也有编号的作用,可见8.反向引用
3.还原特殊符号
//Q //E
4.定义出现次数
{ 0, }{1}
4.1专门的符号
? {0,1} 0次或者1次
* {0,} 0次到无穷次
+ {1,} 1次到无穷次
| 或者
5.贪婪模式与非贪婪模式
.+ 默认为贪婪模式
.+? 非贪婪模式
6.定位符
^ 开头 只能放在表达式开头
$ 末尾 只能放在表达式末尾
\b 匹配一个零宽单词边界,如一个字母与一个空格之间。\B反之
7.正反向预搜索
正向预搜索
字符A(?=字符B) 找到A右边有B的A
字符A(?=字符B|字符C) 找到A右边有B或者C的A
字符A(?!字符B) 找到A右边没有B的A
反向预搜索
(?<=字符B)字符A 找到A左边有B的A
(?<!字符B)字符A 找到A左边没有B的A
8.反向引用
(字符a)(字符b)\2\1 匹配字符abba
((字符a)字符b)\1 匹配字符abab
((字符a)字符b)(字符c)\2 匹配字符abca ab编号1 a编号2 c编号3
编号按左括号的顺序进行编号
(?:(?:字符a)字符b)(字符c)\1 匹配字符abcc
?: 表示此左括号不参与编号
((字符a)字符b)(?<别名Key>字符c)\k<别名Key> 匹配字符abca
?<别名> 表示给当前左括号内容 取别名
\k<别名> 匹配之前标记的内容
标签:字符,匹配,正则表达式,反之,括号,贪婪,编号,随笔
From: https://www.cnblogs.com/kn1ght/p/17607194.html