正则表达式测试器
//g
标志位
共 2 个匹配
Contact: alice@example.com, bob@test.org
捕获组
#1 @9: alice@example.com$1=alice$2=example$3=com
#2 @28: bob@test.org$1=bob$2=test$3=org
结果
Contact: alice [at] example, bob [at] test
相关外部工具
部分链接为联盟营销链接。
相关工具
JSON 格式化在线免费 JSON 格式化工具:粘贴即可美化、压缩并校验 JSON。出错时精确显示行列号并高亮,不上传数据。Base64 编码/解码文本与 Base64 互转,中文表情不乱码(UTF-8),支持 URL 安全 base64,图片转 data URL,全部在浏览器内处理不上传。JSON 转 TypeScript粘贴 JSON 即可生成 TypeScript 的 interface/type,支持嵌套对象、数组合并、可选与可空字段。浏览器内完成,不上传。密码生成器使用加密级安全随机数生成强密码或好记的密码短语。可排除易混淆字符,保证每种字符至少一个。全部在浏览器内完成,不上传不保存。
即时测试和调试正则表达式。输入模式和文本,匹配结果实时高亮显示,同时可查看捕获组内容、统计匹配数量,并预览使用 $1 风格反向引用的替换结果。随时切换标志位,无效模式会给出清晰的错误提示。一切均在浏览器内运行,您的文本不会被上传。
使用方法
- 在模式字段中输入正则表达式。
- 开启或关闭标志位(g 匹配全部,i 忽略大小写,等等)。
- 粘贴要测试的文本。
- 查看高亮匹配结果,检查捕获组,并尝试替换。
各标志位的含义
标志位会改变模式的匹配方式。最常用的是 g(查找所有匹配)和 i(忽略大小写)。以下是每个标志位的作用:
- g
- 全局 — 查找所有匹配项,而非仅第一个
- i
- 忽略大小写 — 不区分大小写进行匹配
- m
- 多行 — ^ 和 $ 匹配每一行的开头和结尾
- s
- 点号全匹配 — . 也匹配换行符
- u
- Unicode — 完整 Unicode 及 \u{...} 支持
- y
- 粘性 — 仅从当前位置开始匹配
功能特性
实时匹配高亮
输入时,文本中的每个匹配项都会实时高亮,让您一眼看清模式捕获了什么。
捕获组
查看每个匹配中所有编号和命名捕获组的内容,非常适合从字符串中提取特定部分。
匹配数量
一目了然地知道找到了多少个匹配——对验证或统计出现次数很有帮助。
替换预览
使用 $1、$2 或 $<name> 反向引用尝试替换字符串,立即看到替换后的文本。
即时标志位切换
切换 g、i、m、s、u、y 后结果立即更新。
清晰的错误提示
无效模式不会静默失败,而是显示易读的错误信息,让您快速定位并修复问题。
常用正则模式
\d+一个或多个数字[A-Za-z]+一个或多个字母\w+@\w+\.\w+简单的邮箱格式模式^https?://\S+行首的 URL\b\w{4,}\b至少 4 个字母的完整单词(\d{4})-(\d{2})-(\d{2})2024-01-31 格式的日期(含捕获组)注意事项与提示
- 本工具使用与浏览器和 Node.js 相同的 JavaScript(ECMAScript)正则语法。
- 替换中的反向引用使用 $1、$2,命名组使用 $<name>。
- 非常复杂的模式在大量文本上可能运行较慢,因为处理在您的设备上进行。
- 不会上传任何内容——您的模式和文本始终保留在浏览器中。
常见问题
- 本工具使用哪种正则引擎?
- 使用与网页浏览器和 Node.js 相同的 JavaScript(ECMAScript)正则表达式引擎。
- 如何使用捕获组?
- 用括号包裹模式的一部分,例如 (\d+)。每个组的值会显示在每个匹配项下方,包括以 (?<name>...) 形式编写的命名组。
- 替换中的 $1 是什么意思?
- $1、$2 等会插入对应括号所捕获的文本。命名组使用 $<name>。
- g 和 i 标志位有什么作用?
- g 查找所有匹配而非仅第一个;i 使匹配不区分大小写。标志位可自由组合使用。
- 我的文本会被上传吗?
- 不会。模式和测试文本完全在浏览器中处理,不会向服务器发送任何内容。