Skip to main content
CheckTown

正则表达式速查表

交互式正则表达式参考,包含语法分组、快速复制的模式,以及常见用例的实时示例。

字符类

.

匹配除换行符外的任意单个字符

a.c matches "abc", "a1c"

\d

匹配任意数字(0-9)

\d+ matches "123" in "abc123"

\D

匹配任意非数字字符

\D+ matches "abc" in "abc123"

\w

匹配任意单词字符(a-z、A-Z、0-9、_)

\w+ matches "hello_1"

\W

匹配任意非单词字符

\W matches "!" in "hello!"

\s

匹配任意空白字符(空格、制表符、换行符)

\s matches " " in "a b"

\S

匹配任意非空白字符

\S+ matches "hello"

[abc]

匹配集合中的任意字符

[aeiou] matches "e" in "hello"

[^abc]

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

[^aeiou] matches "h" in "hello"

[a-z]

匹配范围内的任意字符

[a-f] matches "c" in "cat"

锚点

^

匹配字符串或行的开头

^Hello matches "Hello world"

$

匹配字符串或行的结尾

world$ matches "Hello world"

\b

匹配单词边界位置

\bcat\b matches "cat" not "catch"

\B

匹配非单词边界位置

\Bcat matches "cat" in "scat"

量词

*

匹配前一个元素零次或多次

ab*c matches "ac", "abc", "abbc"

+

匹配前一个元素一次或多次

ab+c matches "abc", "abbc" not "ac"

?

匹配前一个元素零次或一次

colou?r matches "color", "colour"

{n}

精确匹配前一个元素 n 次

\d{3} matches "123" not "12"

{n,}

匹配前一个元素 n 次或更多

\d{2,} matches "12", "123", "1234"

{n,m}

匹配前一个元素 n 到 m 次之间

\d{2,4} matches "12", "123", "1234"

*?

尽可能少地匹配字符(惰性匹配)

<.*?> matches "<b>" in "<b>text</b>"

分组与环视

(...)

捕获匹配的分组以供反向引用

(abc)+ matches "abcabc"

(?:...)

分组但不捕获匹配内容

(?:abc)+ groups without capture

(?=...)

正向先行断言:当其后紧跟指定模式时匹配

\d(?=px) matches "5" in "5px"

(?!...)

负向先行断言:当其后不紧跟指定模式时匹配

\d(?!px) matches "5" in "5em"

(?<=...)

正向后行断言:当其前紧接指定模式时匹配

(?<=\$)\d+ matches "50" in "$50"

(?<!...)

负向后行断言:当其前不紧接指定模式时匹配

(?<!\$)\d+ matches "50" in "50"

\1

匹配与第 n 组先前捕获内容相同的文本

(\w)\1 matches "ll" in "hello"

|

匹配竖线前或竖线后的模式

cat|dog matches "cat" or "dog"

标志

g

查找所有匹配项,而不仅仅是第一个

/a/g finds all "a" in "banana"

i

不区分大小写匹配

/hello/i matches "Hello", "HELLO"

m

^ 和 $ 匹配每一行的开头/结尾

/^abc/m matches at each line start

s

点号(.)也匹配换行符

/a.b/s matches "a\nb"

u

启用完整的 Unicode 匹配

/\u{1F600}/u matches emoji

常用模式

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

电子邮件地址模式

user@example.com

https?://[\w.-]+(?:\.[\w.-]+)+[\w.,@?^=%&:/~+#-]*

带协议的 URL 模式

https://example.com/path

\b\d{1,3}(?:\.\d{1,3}){3}\b

IPv4 地址模式

192.168.1.1

\+?[\d\s()-]{7,15}

电话号码模式(国际)

+1 (555) 123-4567

\d{4}-\d{2}-\d{2}

ISO 日期格式(YYYY-MM-DD)

2026-03-23

#?[0-9a-fA-F]{3,8}

十六进制颜色代码模式

#ff6600, #f60

\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}

信用卡号码模式(16 位数字)

4111 1111 1111 1111

[a-z0-9]+(?:-[a-z0-9]+)*

URL 别名模式(小写、连字符分隔)

my-blog-post-title

[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}

UUID v4 模式

550e8400-e29b-41d4-a716-446655440000

<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>.*?</\1>

带内容的 HTML 标签模式

<div class="x">text</div>

了解更多

正则速查表:面向开发者的完整快速参考

一份可搜索的参考手册,涵盖字符类、量词、锚点、分组和环视。几秒内找到你需要的正则语法。

为什么每位开发者都需要一份正则快速参考

正则表达式是开发者工具箱中最强大的工具之一,却也出了名地难以记忆。无论你是在验证用户输入、解析日志文件,还是在整个代码库中进行查找替换,正则模式都能节省数小时的手工工作。问题在于其语法十分密集——一个位置放错的量词或一个遗漏的转义,就可能让整个模式失效。

阅读约 5 分钟阅读完整指南

常见问题