正则表达式测试
/
/
修饰符
用 $1、$2 引用捕获组,用 $& 表示整个匹配。
| 序号 | 位置 | 匹配内容 | 捕获组 |
|---|
本测试器运行的是浏览器自带的 JavaScript 引擎,因此方言是 ECMAScript。为 PCRE、Python 或 .NET 编写的表达式可能表现不同,尤其是在后行断言、原子组、占有量词和 Unicode 属性转义方面。
这个正则测试器能做什么
正则表达式写起来容易,确信它对不对却很难。本页让你看到,你的表达式在你自己的文本里到底匹配了什么、捕获了哪些组、替换后会变成什么样——在它接触生产数据之前。
使用方法
- 1 在两条斜杠之间输入表达式,并勾选需要的修饰符。
- 2 在下方粘贴真实文本,越杂乱越好,然后点击“运行”。
- 3 用高亮视图快速核对,用表格查看捕获组,再填写替换内容预览改写效果。
为什么表达式在独立的 worker 里运行
有些表达式会爆炸。像 (a+)+$ 这样的嵌套量词,在一段“几乎匹配”的字符串上会迫使引擎尝试天文数字般的路径,而已经开始运行的正则无法从启动它的页面中断。放进 worker 里运行,就可以在两秒后终止它,于是一个糟糕的表达式只让你看到一条提示,而不是一个卡死的标签页。
速查表
| \d | 一个数字 |
| \w | 字母、数字或下划线 |
| \s | 任意空白字符 |
| . | 除换行外的任意字符 |
| ^ $ | 文本的开头和结尾 |
| * + ? | 零次或多次、一次或多次、零次或一次 |
| {2,5} | 重复 2 到 5 次 |
| (...) | 捕获组,可用 $1 引用 |
| (?<ad>…) | 命名组,在长表达式里更好读 |
| [a-z] | 集合中的任意一个字符 |
| a|b | 左边或右边任选其一 |
| \b | 单词边界,本身不匹配任何字符 |
方言很重要
在这里可用的表达式,可能在你的服务端代码里失效,反过来也是。JavaScript、PCRE、Python 和 .NET 在支持的语法上不同,有时同一写法的含义也不同。请在你实际部署的方言里测试;凡是要在浏览器中运行的,这个页面就是合适的地方。
大多数错误藏在捕获组里
匹配本身往往没错,错的是捕获:某个组是可选的,于是返回未定义;或者因为一个括号挪了位置,两个组互换了。表格把每次匹配的每个组并排列出,这是最快发现 $2 并不是你以为的那个的方法。
你输入的内容不会被发送到任何地方
测试文本很少是编出来的。人们会粘贴日志行、客户资料和付款流水号,看看表达式能不能命中。表达式和文本都留在页面里,因此拿真实数据做测试,并不等于把这些数据交给谁。
正则测试器 - 常见问题
是 ECMAScript,因为引擎就是你的浏览器。先行断言和命名组可用,后行断言取决于浏览器版本,原子组和占有量词则根本不存在。为 PHP 或 Python 写的表达式,应当在它实际运行的地方测试。
相关开发工具
MD5生成器
免费 MD5 生成器:在浏览器中把文本或文件转换为 MD5 校验值,适合完整性校验与快速比对。
Base64编码器和解码器
免费 Base64 编码与解码:在浏览器中将文本或文件转为 Base64 并还原,数据不会上传到服务器。
Lorem Ipsum 生成器
免费 Lorem Ipsum 生成器:按段落、句子或字数生成占位文本,可选加入 HTML 标签用于设计稿。
JWT 解码器
免费 JWT 解码器:粘贴令牌即可查看头部、载荷与签名,解析在浏览器中完成,数据不会外传。
URL 编码与解码
免费 URL 编码解码工具:把链接与查询参数转为百分号编码并还原,支持整条 URL 或单个部分。