保留真实表达式
填写 (cat) 这样的表达式本体,把 g 放到单独的标志字段,不要粘贴 /cat/g。工具不主动修剪文本;编辑器或剪贴板可能规范化换行,因此这里不是逐字节保真的文件测试。
- 先选示例,再预览并应用其中的输入变更。
正则与模式匹配
填写表达式本体,不加 / 分隔符。不删除空格或换行;空表达式合法。
填写 (cat) 这样的表达式本体,把 g 放到单独的标志字段,不要粘贴 /cat/g。工具不主动修剪文本;编辑器或剪贴板可能规范化换行,因此这里不是逐字节保真的文件测试。
等待输入或手动测试。
所有匹配均在浏览器本地独立线程执行,不上传表达式或测试文本。
每个标志只能出现一次,u 与 v 互斥。不加 g 时,匹配、替换和提取仅处理首项。
d — 返回捕获位置。g — 查找全部匹配,拆分不受影响。i — 按 JavaScript 规则忽略大小写。m — 使 ^ 与 $ 匹配行边界。s — 使点号包含行终止符。u — 启用 Unicode 语法与码点匹配。v — Unicode 集合模式,与 u 互斥。y — 粘连匹配,仅从 lastIndex 处开始;每次运行初始为 0。浏览器身份:正在检测浏览器…。这是浏览器报告的用户代理,不是准确的引擎版本。
UTF-16 单位上限:文本 100000,表达式 2000,替换文本 10000,替换输出 1000000,完整报告 4000000。结果最多 10000 项;超限整次失败。单次超时 2 秒。
等待输入或手动测试。
仅当前有效、Unicode 完整且不超过 100000 个 UTF-16 单位的替换结果可回写。先预览再应用,撤销可恢复输入、参数和结果。
验证成功不等于捕获字段正确。正则表达式测试器把整体命中与编号、命名捕获组放在一起,让你在替换日期或提取日志字段前确认实际取到了什么。
进行正则表达式在线测试时,先用真实的小段输入检查正则匹配,再观察正则替换是否改到了预期位置。捕获组未参与与捕获空串也会分别保留,避免丢失重要差别。
让模式与结果对应
正则表达式测试器将整体匹配和内部捕获分开显示。结合编号、名称与 UTF-16 位置,可以核对取到的是完整记录还是其中一个字段。
同一个替换模板,在开启与关闭 g 时会产生不同结果。先比较仅首项与全部命中,再预览并应用,原文不会在调参数时直接被覆盖。
填写 (cat) 这样的表达式本体,把 g 放到单独的标志字段,不要粘贴 /cat/g。工具不主动修剪文本;编辑器或剪贴板可能规范化换行,因此这里不是逐字节保真的文件测试。
用 cat 测试 cat cat,再关闭 g,匹配列表会从两项变成一项。默认编辑后等待 350ms 自动执行,也可关闭自动后按 Ctrl/Cmd+Enter。拆分不遵循只处理首项的规则。
导出前先在详情中区分 null 与 "":前者代表组未参与,后者代表捕获了空串。列表每次增加 50 项,但完整 JSON 报告包含全部成功结果,不受当前显示页影响。
对 (Ada) (Lovelace),整体命中是 Ada Lovelace,组 1 与组 2 则分别保存两个字段。开启 d 可查看分组范围;后行断言的捕获也可能位于整体范围之外。
用 (?<year>\d{4})-(?<month>\d{2}) 与 $<month>/$<year>,可把 2026-09 预览为 09/2026。先比较开启 g 与仅首项的差别,再决定是否回写原文。
对 ID:(\d+),选择组 1 可从 ID:42 提取 42,选择 0 则保留 ID:42。有匹配时,不存在的分组会报错;没有匹配时不检查组名是否存在。
用 (,) 拆分 a,b 会得到 ["a", ",", "b"],捕获的分隔符仍然保留。(,)|(;)这类备选分组还会因未参与的捕获产生 null;结果不会自动过滤空串。
支持当前浏览器识别的 d、g、i、m、s、u、v、y。每种只能写一次,u 与 v 不能同时开启。正则表达式测试器会显示实际支持情况,遇未知标志直接报错。
用括号捕获目标内容,再用 $1、$2 或 $<name> 在替换文本中引用。$& 表示完整匹配;空替换文本可以删除命中内容,左侧原文只有经过预览并应用才改变。
不会上传。表达式、测试文本及四种操作均在浏览器 Worker 中处理;页面不提供公开分享、读取 URL 或上传文件入口。关闭页面前可自行保存报告。
本页只执行浏览器原生 JavaScript RegExp,不执行 Python、Java 或 PCRE。基础模式可能相同,高级分组、转义与 Unicode 规则需要在目标运行时再次验证。
匹配、替换、提取未开启 g 时仅处理首个结果。开启 g 才遍历更多匹配;拆分是例外,它按原生 split 语义处理全部文本,且会把捕获组插入结果。
还有疑问?