正则前瞻后顾断言测试器

专注正则零宽断言的教学与测试工具,支持(?=)、(?!)、(?<=)、(?<!)四种断言语法,实时高亮匹配结果并显示匹配位置详情。

免费在线工具
Loading…

使用说明

在「正则表达式」输入框中输入包含零宽断言的正则表达式(如 \d+(?=px)),在「测试文本」文本区域输入要匹配的文本内容,点击「测试匹配」即可实时查看匹配结果。

匹配结果区域会以黄色高亮显示所有匹配到的文本,下方列出每个匹配的具体位置和内容。对于包含零宽断言的正则,页面会显示「含零宽断言」标记。

页面内置 4 个示例按钮,分别演示四种断言语法:正向前瞻(?=)、负向前瞻(?!)、正向后顾(?<=)、负向后顾(?)。点击示例按钮会自动填入对应的正则和测试文本并立即测试。

页面底部提供完整的断言语法参考表,包含每种语法的名称、含义和示例,方便随时查阅。

注意:后顾断言(lookbehind)在 Safari 15.0 以下以及较旧浏览器中不被支持,如测试不生效请检查浏览器版本。

功能介绍

正则表达式的零宽断言(Lookaround)是许多开发者的学习难点:它不消耗字符,只检查位置的前后条件是否满足,这种「断言」的语义与常规匹配逻辑截然不同。

本工具聚焦于这四种断言语法做深度讲解和可视化测试——不覆盖正则表达式的其他知识点(已有本站的 regex-tester/regex-memo/common-regex-patterns 等工具从不同角度切入),只在零宽断言这个小而深的领域做到讲透、测透。

与众不同的是,本工具不仅展示匹配结果,还附带精准的匹配位置信息(每个匹配在原文中的字符索引),让用户直观理解「零宽」的含义——断言部分虽然参与了匹配条件的判定,但本身不会被匹配为结果的一部分。

内置的 4 个教学示例覆盖了零宽断言最典型的应用场景:用正向前瞻提取 CSS 中的 px 数值、用负向前瞻排除 px 单位只匹配 em 等、用正向后顾提取货币符号后的金额、用负向后顾排除带货币符号的数字只匹配普通数字。

使用场景

学习零宽断言语法
通过内置的 4 个教学示例,逐步理解正向前瞻、负向前瞻、正向后顾、负向后顾的区别。每个示例配上直观的测试文本和匹配高亮。
调试复杂正则表达式
当你的正则表达式包含断言但匹配结果不符合预期时,用本工具逐段测试,通过匹配位置信息定位问题所在。

常见问题

零宽断言到底是什么?
零宽(zero-width)指断言本身不消耗字符,不占用匹配结果。比如 <code>\d+(?=px)</code> 匹配 100px 中的 100,但不包括 px。断言只检查位置是否满足条件——就像「前面是否有 $」或「后面是否不是 px」这样——满足条件的位置才允许紧随其后的模式进行匹配。
和已有的 regex-tester 有什么不同?
本站已有 regex-tester(通用正则测试)、regex-memo(正则速记表)、common-regex-patterns(常用正则模版)。本工具不重复覆盖通用正则功能,而是聚焦在「零宽断言」这一个较难理解的子话题做深度讲解和可视化测试。你不需要在这里测试 <code>\d+</code> 这样的简单匹配,那应该用 regex-tester。
为什么我的后顾断言在 Safari 里没用?
后顾断言(lookbehind, 即 (?<=...) 和 (?<!...))是 ES2018 引入的特性,Safari 直到 16.4 版本(2023 年 3 月)才开始支持。如果您的 Safari 版本较旧,后顾断言会报错或静默失败,请使用 Chrome/Firefox/Edge 测试。
工具表格里的 &lt; 符号是什么意思?
HTML 中 < 需要转义为 &lt;。工具页面底部的参考表和示例按钮中的语法是正确的(实际使用中写 <?= 而不是 &lt;?=),页面源码中使用了 HTML 实体编码,复制使用时请注意还原。