正则表达式速查表
交互式正则表达式参考,包含语法分组、快速复制的模式,以及常见用例的实时示例。
字符类
.匹配除换行符外的任意单个字符
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}\bIPv4 地址模式
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>
了解更多
一份可搜索的参考手册,涵盖字符类、量词、锚点、分组和环视。几秒内找到你需要的正则语法。
为什么每位开发者都需要一份正则快速参考
正则表达式是开发者工具箱中最强大的工具之一,却也出了名地难以记忆。无论你是在验证用户输入、解析日志文件,还是在整个代码库中进行查找替换,正则模式都能节省数小时的手工工作。问题在于其语法十分密集——一个位置放错的量词或一个遗漏的转义,就可能让整个模式失效。