开发工具 125文本工具 40编码加密 40图片文件 66查询工具 46计算转换 57站长工具 57生活工具 55娱乐工具 39金融理财 45
首页/开发工具/正则表达式测试

正则表达式测试

在线测试 JavaScript 正则表达式:实时高亮所有匹配、列出每个匹配及其捕获组的位置,需要时还能做替换预览。写爬虫规则、做表单验证、清洗日志时,先把正则在这里跑通再写进代码,省掉反复重启调试的功夫。

本地运行 · 数据不上传 开发工具 免费 · 无需注册
正则测试结果
点上方「生成」按钮开始

使用说明

  1. 填正则、粘测试文本,结果会实时更新。
  2. 结果里会给出匹配数量和每一处的具体内容、位置、捕获组。
  3. 勾上「启用替换」就能预览替换结果,$1、$2 引用捕获组,$& 表示整个匹配。
  4. 注意本站的正则是 JavaScript 引擎,和 Python、Java 的写法有细微差别(见下方说明)。

常见问题

JavaScript 正则和其他语言有何不同?
主要三点:JS 的 \d、\w 不支持 Unicode 属性(要加 u 修饰符并写 \p{...});JS 的后行断言(lookbehind)近两年才全面支持;Python 的 (?P<name>...) 命名捕获组在 JS 里要写成 (?<name>...)。跨语言移植时最容易在这三处翻车。
贪婪和懒惰有什么区别?
默认贪婪:.* 会尽可能多地匹配,直到最后一个可能的结束位置;加 ? 变成懒惰(.*?),匹配到第一个可能的结束位置就停。解析 HTML 标签时通常要用懒惰模式,否则会跨标签匹配。
为什么正则会卡死?
经典原因是「灾难性回溯」,比如 (a+)+$ 这种嵌套量词遇到不匹配的长字符串,回溯次数会指数级增长。写正则时避免嵌套量词、能用更具体的字符类就别用 .*,能显著降低风险。

相关工具

开发工具 · 该分类共 125 个工具,展开查看全部