无需登录 数据私有 本地保存

正则替换捕获组测试器 - $1/$2 引用预览

10
0
0
0

正则替换捕获组测试器

实时测试正则替换,预览 $1/$2 捕获组引用效果 — 支持所有 JS replace 引用语法

匹配: 0 捕获组: 0
支持: $1-$99 $& $` $' $$ $<name>
快速示例:
等待输入...
等待输入...
黄色高亮 = 完整匹配,悬停查看
模板引用解析预览 (基于第一个匹配)
暂无匹配数据
捕获组详情
# 完整匹配 $1 $2 $3+
暂无匹配
替换引用语法速查表 (点击展开)
引用 含义 示例模板 匹配 "Hello World" 时结果
$1, $2, ... $99第n个捕获组$2, $1World, Hello
$&整个匹配文本[$&][Hello World]
$`匹配的文本$`→(匹配前文本)→
$'匹配的文本→$'→(匹配后文本)
$$字面量美元符号$$1$1
$<name>命名捕获组$<key>(命名组值)

提示:如果引用不存在的捕获组(如$5但只有2个组),JavaScript会将其替换为空字符串。 需要字面量$时请使用$$

常见问题 FAQ
什么是捕获组?
捕获组是正则中用括号 () 包裹的子表达式。匹配时,括号内的内容会被"捕获"并编号(按左括号出现顺序),之后可在替换中用 $1$2 等引用。非捕获组 (?:...) 不会产生编号。
$1 和 $01 有区别吗?
在 JavaScript 中,$1 引用第1个捕获组,$01 同样引用第1个捕获组(前导零被忽略)。但 $10 会尝试引用第10个捕获组,如果不存在则为空。建议使用 $1-$9 的简洁写法。
如何替换所有匹配?
确保开启 g 标志(全局匹配)。开启后 String.replace() 会替换所有匹配项。关闭 g 标志则只替换第一个匹配。本工具默认已开启 g 标志。
$& 和 $` 和 $' 是什么?
$& 代表整个匹配的文本;$`(反引号前)代表匹配位置之前的全部文本;$'(单引号后)代表匹配位置之后的全部文本。这些在构造环绕替换时非常有用。
为什么我的 $1 显示为空?
常见原因:①正则中没有使用括号定义捕获组;②括号被错误转义(如 \( 匹配字面量括号);③使用了非捕获组 (?:...);④捕获组编号超出实际数量。请检查正则表达式中的括号数量和类型。
支持命名捕获组吗?
支持。JavaScript ES2018+ 支持命名捕获组 (?<name>...),在替换中使用 $<name> 引用。本工具同时支持编号捕获组和命名捕获组。命名组也会被分配编号。