Regex-cheatsheets速查表

字符

Pattern Description
x 字符x
\\ 反斜线字符
\t 制表符\u0009
\n 新行(换行)符\u000A
\r 回车符\u000D
\f 换页符\u000C
\a 报警 (bell) 符\u0007
\e 转义符\u001B

字符类

Pattern Description
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z(范围)
[a-d[m-p]] 等于[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] 等于[ad-z](减去)
[a-z&&[^m-p]] 等于[a-lq-z](减去)

预定义字符类

Pattern Description
. 任何字符(可能不匹配行结束符)
\d 数字:[0-9]
\D 非数字:[^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

边界匹配器

Pattern Description
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有)
\z 输入的结尾

Greedy 数量词

匹配优先,优先匹配最大长度,匹配尽可能多的内容

Pattern Description
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

Reluctant 数量词

忽略优先,尽可能匹配最少内容,满足下限即成功

Pattern Description
X?? X,一次或一次也没有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超过 m 次

Possessive 数量词

占有优先,优先匹配最大长度,放弃备用状态

Pattern Description
X?+ X,一次或一次也没有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超过 m 次

Logical 运算符

Pattern Description
XY X 后跟 Y
X|Y X 或 Y
(X) X,作为捕获组

特殊构造(非捕获)

Pattern Description
(?:X) X,作为非捕获组
(?>X) X,固化分组,匹配后放弃备用状态

环视结构(非捕获)

环视结构,包括肯定型和否定型,顺序环视和逆序环视,它们只是简单的测试,其中表达式能否在当前的位置匹配后面的内容(顺序),或者前面的内容(逆序),并不改变当前位置。

Pattern Description
(?=X) 肯定型,先向前(右)匹配与X相符内容
(?!X) 否定型,先向前(右)匹配与X不相符内容
(?<=X) 肯定型,先向后(左)匹配与X相符内容
(?<!X) 否定型,先向后(左)匹配与X不相符内容

常见需求

案例

// TODO | Needs | Pattern | | -------------------- | ----------------------- | | 手机号:1XXXXXXXXXX | 1\d{10} | | 日期:2020-09-03 | \d{4}-\d{2}-\d{2} | | 日期:2020年09月03日 | \d{4}年\d{2}月\d{2}日 |


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除