咖啡时间工具箱

正则表达式测试

填写正则表达式和测试文本,点“测试”,高亮所有匹配并列出每个分组。文字只在你的浏览器里处理,不会上传。

使用限制

注意:结果完全遵循你当前浏览器的 JavaScript(ECMAScript)正则引擎。它和 PCRE、Python、Java、Go、grep 等的语法与行为有差别,在这里测通过的表达式放到别的语言里不一定一样。

使用方法

  1. 填写正则表达式(直接写内容,不要加两边的斜杠),按需勾选标志,在“测试文本”里粘贴要匹配的文字。
  2. 点“测试”。匹配到的部分会高亮,下面的表格列出每次匹配的位置、内容、编号分组和命名分组;没有参与匹配的分组显示为“未参与”。
  3. 勾选“同时预览替换结果”,填写替换内容,可以使用 $1、$<名称>、$& 引用分组和整个匹配。不勾选 g 时只替换第一处。
  4. 想快速试试,可以从“常用格式示例”里选一个。

常见问题

为什么我的正则在别的语言里结果不一样?

不同语言的正则引擎不同:换行、Unicode、大小写、分组语法、后行断言的限制都有差别。本工具用的是你浏览器内置的 JavaScript 引擎,只能代表 JavaScript。

提示“可能发生了灾难性回溯”是什么意思?

有些写法(嵌套的重复,如 (a+)+$)在匹配失败时需要尝试指数级的路径,耗时可能以分钟甚至小时计。本工具在 3 秒后中止运行。可以改成不嵌套的写法,或者用更具体的字符组代替 .*。

g、u、v 这些标志是什么?

g 找出全部匹配而不是只找第一个;i 忽略大小写;m 让 ^ 和 $ 匹配每一行的开头结尾;s 让点号也匹配换行;u 开启 Unicode 模式(处理 emoji 和 \p{…});v 是更新的 Unicode 集合模式,不能和 u 同时用;y 粘连模式;d 额外返回下标。

我的文字会被上传吗?

不会,正则在你的浏览器里运行。