备忘单

使用备忘单来探索正则表达式的所有模式和符号吧。

锚点

匹配字符串或行的开头。

an answer or a question
^\w+

匹配字符串或行的末尾。

an answer or a question
\w+$

匹配单词的开头或末尾。

an answer or a question
n\b

匹配不在单词开头或末尾的位置。

an answer or a question
n\B

标志

使表达式忽略大小写。

CaT
cat

确保表达式不会在检索到第一个匹配项时停止。

cat cat cat
cat

如果不启用,`^` 和 `$` 只匹配整个字符串的开始和结束,而不会单独匹配每一行。

cat
cat
cat

组和引用

使表达式分组。

hahaha hah haha
(ha)+

引用表达式的分组。

hah haa dad
(\w)a\1

创建无法引用的分组。

hahaha hah haha
(?:ha)+

字符类

匹配集合中的任意字符。

bar ber bir bor bur
b[eo]r

匹配不在集合中的任意字符。

bar ber bir bor bur
b[^eo]r

匹配两个字符之间的任意字符,包括它们本身。

abcdefghijklmnopqrstuvwxyz
[e-i]

匹配除换行符之外的任意字符。

hi 012 _-!?
.

匹配字母、数字或下划线。

hi 012 _-!?
\w

匹配除字母、数字和下划线之外的任意字符。

hi 012 _-!?
\W

匹配所有数字。

+1-(444)-222
\d

匹配除数字外的任意字符。

+1-(444)-222
\D

匹配所有空白字符。

one two
\s

匹配除空白字符以外的任意字符。

one two
\S

零宽断言

1st 2nd 3pc
\d(?=nd)
1st 2nd 3pc
\d(?!nd)
#1 $2 %3
(?<=%)\d
#1 $2 %3
(?<!%)\d

量词与分支

表达式匹配一个或多个。

bp bep beep beeep
be+p

表达式匹配零个或多个。

bp bep beep beeep
be*p

表达式匹配指定范围的位数。

bp bep beep beeep
be{1,2}p

使表达式可选。

color, colour
colou?r

类似于“或”。用于匹配多种符合条件的表达式之一。

fat, cat, rat
(c|r)at