什么是正则表达式测试工具?
正则表达式测试工具是一个在线工具,用于测试和调试 正则表达式(Regex)。输入一个模式,输入或粘贴您的测试字符串,立即看到所有匹配项以实时高亮显示。
无论您是验证电子邮件地址、解析日志文件还是从文本中提取数据,此工具都可以帮助您快速构建和验证正则表达式模式,无需编写代码。
实时匹配
捕获组
替换模式
内置速查表
常用模式库
一键加载流行的正则表达式模式来快速启动您的工作:
- 电子邮件验证模式
- URL和域名匹配
- IP地址提取
- 电话号码格式
- 日期和时间模式
- HTML标签解析
如何使用正则表达式测试工具
输入您的模式
在 / 分隔符之间输入您的正则表达式。该工具实时验证您的模式,如果语法无效,会立即显示错误。
设置标志
点击标志按钮来切换选项:
- g(全局)— 查找所有匹配项,而不仅仅是第一个
- i(不区分大小写)— 忽略大小写差异
- m(多行)—
^和$匹配每行的开始/结束 - s(点号匹配所有)—
.也匹配换行符 - u(Unicode)— 启用完整的Unicode匹配
输入测试文本
在 测试字符串 区域中输入或粘贴文本。匹配项会立即高亮显示,并使用颜色编码的捕获组。
查看匹配项
匹配详情 面板显示每个匹配项及其位置和捕获组值。徽章显示匹配总数。
使用替换模式
点击 替换 按钮启用替换。使用 $1、$2 或 ${name} 输入替换模式来引用分组。结果预览实时更新。
功能
实时匹配和高亮显示
当您输入正则表达式模式或修改测试字符串时,匹配项直接在文本区域中高亮显示。无需点击按钮——结果通过防抖输入自动更新以获得流畅的性能。
颜色编码的捕获组
每个捕获组都用不同的颜色高亮显示(最多5种颜色),使您可以轻松看到文本的哪些部分由哪个分组捕获。
- 编号分组(
$1、$2) - 命名分组(
${name})
匹配详情面板
查看每个匹配项的详细分解:
- 完整匹配文本和字符位置
- 编号和命名捕获组值
- 颜色编码的分组标签,便于视觉识别
替换模式
切换替换面板来测试替换模式。输入带有分组引用的替换文本并立即查看结果。一键复制输出。
常用模式库
从10个预设模式中选择常见用例。每个模式都附带示例文本,以便您可以立即看到它的实际效果:
电子邮件和URL
IP和电话
日期和时间
HTML标签
十六进制颜色
用户名和密码
内置速查表
可折叠的参考面板涵盖6个正则表达式语法类别,便于您工作时快速查阅:
字符类
匹配特定类型的字符:\d(数字)、\w(单词字符)、\s(空白)、.(任意字符)以及使用 [abc] 或范围 [a-z] 的自定义字符集。
量词
控制模式重复的次数:*(0次或更多)、+(1次或更多)、?(0次或1次)、{n}(恰好n次)、{n,m}(n到m次)。
锚点
匹配文本中的位置:^(字符串/行的开始)、$(字符串/行的结束)、\b(单词边界)、\B(非单词边界)。
分组和引用
捕获和引用匹配的部分:(pattern)(捕获分组)、(?<name>pattern)(命名分组)、(?:pattern)(非捕获分组)、\1 或 $1(反向引用)。
环视
根据前面或后面的内容进行匹配:(?=pattern)(正向先行)、(?!pattern)(负向先行)、(?<=pattern)(正向后行)、(?<!pattern)(负向后行)。
标志
修改正则引擎的工作方式:g(全局)、i(不区分大小写)、m(多行)、s(点号匹配所有)、u(Unicode)。
常见问题
此工具使用哪个正则引擎?
此工具使用内置于您的浏览器中的 JavaScript RegExp引擎。它支持所有现代正则表达式功能,包括先行、后行、命名分组和Unicode属性。
我的数据安全吗?
是的。所有正则表达式匹配和文本处理都 完全在您的浏览器中 进行。没有任何内容被发送到任何服务器。您可以在页面加载后离线使用该工具来验证这一点。
标志按钮是什么意思?
- g(全局)— 查找所有匹配项而不是在第一个处停止
- i(不区分大小写)— 使匹配不区分大小写
- m(多行)— 使
^和$匹配行边界 - s(点号匹配所有)— 使
.匹配换行符 - u(Unicode)— 启用完整的Unicode支持
捕获组如何工作?
您的模式中的括号 () 创建捕获分组。每个分组捕获匹配的一部分,可在替换中作为 $1、$2 等访问。命名分组使用 (?<name>...) 语法,可以作为 ${name} 引用。
(\w+)@(\w+)\.com 从电子邮件地址中将用户名捕获为 $1,将域名捕获为 $2。"无匹配"是什么意思?
这意味着您的正则表达式模式与测试字符串的任何部分都不匹配。常见的解决方案:
- 检查您的模式语法是否有错误
- 确保设置了正确的标志(例如,i 表示不区分大小写)
- 验证测试字符串包含预期的文本
- 尝试简化您的模式以隔离问题
我可以将其用于其他编程语言吗?
JavaScript正则表达式语法与其他语言(Python、Java、PHP、C#)非常相似。但是,在先行、后行支持或Unicode处理等高级功能中可能存在细微差异。
还没有评论,快来发表第一条!