Regex速查表
🔤 普通字符
| 表达式 | 描述 |
|---|---|
. 或 [^\n\r] |
匹配除换行符外的任意单个字符 |
[A-Za-z] |
匹配任意字母(大小写) |
[a-z] |
匹配任意小写字母 |
[A-Z] |
匹配任意大写字母 |
\d 或 [0-9] |
匹配任意数字 |
\D 或 [^0-9] |
匹配任意非数字字符 |
_ |
匹配下划线 |
\w 或 [A-Za-z0-9_] |
匹配字母、数字或下划线 |
\W 或 [^A-Za-z0-9_] |
匹配非字母、数字、下划线的字符 |
\S |
匹配任意非空白字符 |
⬜ 空白字符
| 表达式 | 描述 |
|---|---|
(空格) |
匹配空格字符 |
\t |
匹配制表符 (Tab) |
\n |
匹配换行符 |
\r |
匹配回车符 |
\s |
匹配任意空白字符(空格、制表符、换行符、回车符) |
📚 字符集合
| 表达式 | 描述 |
|---|---|
[xyz] |
匹配 x、y 或 z 中的任意一个 |
[^xyz] |
匹配除 x、y、z 以外的任意字符 |
[1-3] |
匹配 1、2 或 3 |
[^1-3] |
匹配除 1、2、3 以外的任意字符 |
💡 字符集合相当于对括号内的单个字符进行 OR 操作。
💡 在 [ 后使用 ^ 表示"取反"。
💡 在字符集合内,. 表示字面意义的句号。
🔒 需要转义的字符
字符集合外
| 表达式 | 描述 |
|---|---|
\. |
句号 |
\^ |
脱字符 |
\$ |
美元符号 |
\| |
竖线 |
\\ |
反斜杠 |
\/ |
正斜杠 |
\( |
左圆括号 |
\) |
右圆括号 |
\[ |
左方括号 |
\] |
右方括号 |
\{ |
左花括号 |
\} |
右花括号 |
字符集合内
| 表达式 | 描述 |
|---|---|
\\ |
反斜杠 |
\] |
右方括号 |
💡 ^ 仅当紧接在 [ 之后时才需要转义。
💡 - 仅当位于两个字母或两个数字之间时才需要转义。
🔢 量词
| 表达式 | 描述 |
|---|---|
{n} |
恰好匹配 n 次 |
{n,} |
至少匹配 n 次 |
{n,m} |
匹配 n 到 m 次 |
* |
匹配 0 次或多次(等同于 {0,}) |
+ |
匹配 1 次或多次(等同于 {1,}) |
? |
匹配 0 次或 1 次(等同于 {0,1}) |
💡 量词放在要限定的表达式之后。
🚧 边界
| 表达式 | 描述 |
|---|---|
^ |
匹配字符串开始位置 |
$ |
匹配字符串结束位置 |
\b |
匹配单词边界 |
💡 单词边界匹配规则:
- 字符串开头,且第一个字符是
\w - 字符串中相邻的两个字符,第一个是
\w,第二个是\W - 字符串结尾,且最后一个字符是
\w
🎯 匹配模式
| 表达式 | 描述 |
|---|---|
foo|bar |
匹配 foo 或 bar |
foo(?=bar) |
正向先行断言:匹配后面是 bar 的 foo |
foo(?!bar) |
负向先行断言:匹配后面不是 bar 的 foo |
(?<=bar)foo |
正向后行断言:匹配前面是 bar 的 foo |
(? |
负向后行断言:匹配前面不是 bar 的 foo |
📦 分组与捕获
| 表达式 | 描述 |
|---|---|
(foo) |
捕获组:匹配并捕获 foo |
(?:foo) |
非捕获组:匹配 foo 但不捕获 |
(foo)bar\1 |
反向引用:\1 引用第 1 个捕获组,匹配 foobarfoo |
💡 捕获组仅在以下方法中有效:
string.match(regexp)string.matchAll(regexp)string.replace(regexp, callback)
💡 \N 是对第 N 个捕获组的反向引用,N 从 1 开始。
🚩 标志(修饰符)
| 标志 | 描述 |
|---|---|
g |
全局搜索(查找所有匹配,而非第一个) |
i |
忽略大小写 |
m |
多行模式(^ 和 $ 匹配每行的开始和结束) |
s |
dotAll 模式(. 匹配包括换行符在内的所有字符) |
u |
Unicode 模式(正确处理 Unicode 字符) |
y |
粘附模式(从 lastIndex 位置开始匹配) |
📖 工具说明
Regex速查表提供了 JavaScript 正则表达式的完整语法参考,包括字符匹配、量词、边界、分组、断言等,方便开发者快速查阅。
🔗 相关工具