RegexLearn
学习讲义游乐场GitHub
即将推出
简体中文

^
字符串或行的开头

匹配字符串或行的开头。

an answer or a question
^\w+
$
字符串或行的末尾

匹配字符串或行的末尾。

an answer or a question
\w+$
\b
单词边界

匹配单词字符或者末尾的位置

an answer or a question
n\b
\B
非单词边界

匹配一个不在词尾的单词字符或位置。

an answer or a question
n\B

模式

i
忽略大小写

忽略大小写

CaT
cat
g
全局

确保表达式匹配所有结果

cat cat cat
cat
m
多行

如果不启用,行开始和结束等于整个字符串的开始和结束。它不对每一行单独起作用。

cat
cat
cat

组和引用

()

表达式分组

hahaha hah haha
(ha)+
\1
引用

引用分组的表达式。

hah haa dad
(\w)a\1
(?:)
非捕获组

创建无法引用的分组。

hahaha hah haha
(?:ha)+

字符类

[abc]
字符集

匹配集合中的任何字符

bar ber bir bor bur
b[eo]r
[^abc]
否定字符集

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

bar ber bir bor bur
b[^eo]r
[a-z]
范围

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

abcdefghijklmnopqrstuvwxyz
[e-i]
.

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

hi 012 _-!?
.
\w
单词

匹配任何字母数字字符。包括下划线。

hi 012 _-!?
\w
\W
非单词

匹配任何非字母数字字符

hi 012 _-!?
\W
\d
数字

匹配所有数字。

+1-(444)-222
\d
\D
非数字

匹配所有非数字。

+1-(444)-222
\D
\s
空格

匹配所有空格。

one two
\s
\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
{1,3}
重复

指定范围内匹配的表达式。

bp bep beep beeep
be{1,2}p
?
可选

使某个字符可选

color, colour
colou?r
|
分枝条件

创建 `or` (`或`)判断条件。用于匹配多种可能的字符

fat, cat, rat
(c|r)at