功能简介
正则测试工具让你边写正则边看结果:匹配内容在原文中高亮显示,每个捕获组的值和位置都列出来,还可以填写替换模板,预览 String.replace 的结果。
使用方法
- 在「测试文本」里粘贴要搜索的内容,或点「示例」。
- 在选项面板的「正则表达式」里输入模式,不需要加两边的斜杠。
- 按需打开标志:g 查找全部,i 忽略大小写,m 让
^、$按行匹配,s 让.也匹配换行,u 启用完整 Unicode。 - 查看结果:匹配数量、高亮文本,以及列出每处匹配和分组的表格,点「复制」可复制任意值。
- 想试替换,就在「替换为」里填写模板,比如
$2, $1。
示例
默认的模式 ([\w.+-]+)@([\w-]+(?:\.[\w-]+)+) 用来查找邮箱地址,并分别捕获用户名和域名。替换模板填 $1 at $2 时,hello@example.com 会变成 hello at example.com。
速查
\d数字,\w单词字符,\s空白,.任意字符*零个或多个,+一个或多个,?可选,{2,5}2 到 5 个[abc]其中之一,[^abc]都不是,a|b二选一(...)捕获组,(?<name>...)命名分组,(?:...)不捕获的分组(?=...)先行断言,(?<=...)后行断言,\b单词边界
常见问题
› 用的是哪种正则引擎?
浏览器内置的 JavaScript(ECMAScript)正则引擎,和 Node.js、Deno 以及所有浏览器一致。大部分语法与 PCRE、Python、Java 通用,但不支持占有量词、递归等少数特性。
› 为什么只找到一处匹配?
打开「全局 (g)」。不加 g 时,JavaScript 找到第一处匹配就停止。
› 替换时怎么引用分组?
用 $1、$2… 引用编号分组,$<name> 引用命名分组,$& 表示整个匹配,$$ 表示字面的美元符号。
› 为什么 ^ 和 $ 不能匹配每一行?
默认它们只匹配整段文本的开头和结尾。打开「多行 (m)」后会在每个换行处匹配。
› 文本会被上传吗?
不会,匹配在浏览器中进行。注意极慢的正则(灾难性回溯)可能让页面卡住,长文本上避免 (a+)+ 这类嵌套量词。