/ /
FLAGS:
常用模式:
测试字符串
速查表(ECMAScript 正则)
字符类
.任意字符(s flag 时含换行)
\d数字 [0-9]
\D非数字
\w单词字符 [A-Za-z0-9_]
\W非单词字符
\s空白(空格 / 制表 / 换行)
\S非空白
[abc]集合:a 或 b 或 c
[^abc]排除:非 a/b/c
[a-z]范围 a 到 z
量词
*0 次或多次
+1 次或多次
?0 次或 1 次
{n}正好 n 次
{n,}至少 n 次
{n,m}n 到 m 次
*?非贪婪 *
+?非贪婪 +
边界与锚点
^行首(m flag 下每行)
$行尾
\b单词边界
\B非单词边界
分组与回引
(...)捕获组(自动编号)
(?:...)非捕获组
(?<name>...)命名捕获组
\1回引第 1 组
\k<name>回引命名组
(?=...)正向先行
(?!...)负向先行
(?<=...)正向后顾
(?<!...)负向后顾
替换占位符
$&完整匹配
$1 ~ $9第 N 组捕获
$<name>命名捕获组
$`匹配前的内容
$'匹配后的内容
$$$ 字面量
常见问题
本工具支持哪种正则方言?
ECMAScript(JavaScript 内置 RegExp)方言。这与 V8 / Chrome / Node.js 完全一致,与 Python / PCRE / Java 的方言略有差异。如果你的代码运行在浏览器或 Node.js,本工具的结果就是你代码运行时的真实结果。
为什么有些正则会卡住或报「too long」?
正则可能因「灾难性回溯」在某些输入上指数级卡顿(如 (a+)+b 匹配 'aaaa...x')。本工具会限制单次匹配数与运行时间,避免浏览器卡死。如果遇到此提示,请检查正则中是否有嵌套量词,必要时改写为更精确的写法。
替换支持哪些占位符?
完整支持 ECMAScript String.prototype.replace 的占位符:$1~$9 引用编号捕获组,$<name> 引用命名捕获组,$& 整个匹配,$` 匹配前的内容,$' 匹配后的内容,$$ 表示一个 $ 字面量。
我的正则会被上传到服务器吗?
不会。本工具完全在你的浏览器内运行(new RegExp + matchAll + replaceAll),正则与文本从不离开你的设备,可放心粘贴含敏感数据的样本进行调试。