工具用的顺手吗?
你的反馈能帮助我们做得更好
专为Go开发者设计的正则表达式在线测试工具,验证RE2语法规则,实时显示匹配结果和捕获组。
i
m
s
请输入正则表达式和待匹配文本
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
这个页面的名称是“Golang 正则表达式测试”,但当前实际执行匹配与替换的是浏览器 JavaScript 的RegExp。它不是Go运行时,也没有调用Go标准库,因此不能把结果当成Go regexp编译成功或完全兼容的证明。常见的字符类、分组、量词和替换测试可用于快速试写;遇到Go专属语法、两种语言的边界差异或生产代码行为时,应再用Go本身验证。
输入包括正则模式、待测试文本、匹配或替换模式、替换内容,以及忽略大小写、多行和点号匹配换行三项开关。结果区会显示匹配数量、高亮位置、完整匹配值和捕获组;替换模式还会给出替换后的文本。匹配位置从0开始,按JavaScript字符串索引显示。
指南
按步骤完成操作,并通过示例核对输入与结果。
在模式框写入表达式,在文本框粘贴一段不含敏感数据的代表性文本。可使用内置示例查看多行文本和捕获组的显示方式。
“匹配”模式会高亮命中内容并列出匹配详情;“替换”模式还需要填写替换文本。替换全部开关默认开启,关闭时只处理首个匹配。
观察匹配数量、每个命中的位置和捕获组。如果显示无效模式,阅读错误提示并检查括号、方括号和转义;确认结果符合预期后,再把模式移入真实代码测试。
例如输入模式([A-Z]{2})(\d{3})和文本编号AB123,匹配详情可查看完整命中及两个捕获组。这个样例说明如何读取分组,不证明两种语言对所有表达式都采用相同规则。
场景
查看这项工具在不同工作与生活流程中的用法。
用包含邮箱标签、电话号码标签或编号的短文本观察分组是否命中,检查捕获组内容,再决定是否需要调整模式。真实数据可先替换成虚构样例。
对一段测试文本先运行匹配,再切换到替换模式并比较替换前后内容,确认替换范围和是否替换全部,避免直接对原始文件盲目批量修改。
把简化后的文本与表达式用于代码评审讨论,让同事看到具体命中与捕获组。若目标代码运行在Go中,最终语法和输出仍以Go标准库的验证结果为准。
问答
集中解答高频疑问与容易混淆的问题。
不保证。页面使用JavaScript RegExp执行,Go标准库使用自己的regexp实现和RE2语法;两者语法、标志、字符索引及替换细节可能不同。将结果用于Go代码前,请用Go的regexp包复核。
“忽略大小写”对应i标志;“多行”对应m,使^和$可以按行边界匹配;“点号匹配换行”对应s,使点号也能匹配换行符。页面默认开启多行,另外两项默认关闭。
先确认待测文本非空,再检查模式是否真的覆盖文本中的字符;锚点、大小写、换行和开关都会改变命中范围。位置值是从0开始的JavaScript字符串索引,不是Go的UTF-8字节偏移。
在JavaScript替换规则中,$1等形式可引用对应的捕获组。先确认表达式确实包含捕获组,再查看输出文本;该规则不能据此推断Go替换函数的写法完全相同。
须知
使用前了解适用范围、结果限制与必要提醒。
虽然页面以Go为主题,当前处理逻辑采用JavaScript正则引擎;Go的RE2语法规则不能直接套用到此页面,也不能因为页面匹配成功就推断Go程序中行为一致。尤其是回溯引用、零宽断言、Unicode字符边界和替换语法等差异,应以Go官方文档和目标Go版本的实际运行结果为准。避免粘贴口令、个人信息或生产日志;调试时优先使用经过脱敏的短样例。
推荐
查找相关工具、专题与可用的 API 能力。