工具用的顺手吗?
你的反馈能帮助我们做得更好
在线测试Python正则表达式模式,实时匹配结果、捕获组和位置信息,快速调试文本处理规则。
re.I / i
re.M / m
re.S / s
re.X
re.A
请输入正则表达式和待匹配文本
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
正则表达式用一段模式描述需要查找的文本形式。本页提供匹配与替换两种操作,可查看匹配片段、总数、捕获组及命名组,也会高亮匹配文本。它面向 Python re 常见写法做交互测试,页面用于测试常见Python re写法,并展示匹配、分组及替换效果。
工具识别 (?P<name>...) 形式的 Python 命名组,并提供忽略大小写、多行、点号匹配换行、详细模式和ASCII近似模式。多行模式默认开启。详细模式会忽略字符类以外的空白和注释;也提供ASCII模式选项。
匹配列表展示匹配到的文本、位置和长度;若模式含括号分组,还会列出各编号捕获组及命名组的取值。未参与某次匹配的组会显示为空或未匹配。匹配模式会查找全部匹配项,因此可用于检查模式是否漏掉文本或捕获组范围是否合适。
忽略大小写用于不区分英文字母大小写;多行模式让行首和行尾边界可按每一行判断;点号匹配换行后,.也能覆盖换行符。详细模式便于把模式分行并写注释。页面提供的ASCII模式是近似选项,复杂字符集行为应以实际Python运行为准。
例如,输入多行日志并使用行首标记时,可切换多行选项观察每一行是否独立命中;若字段值可能跨行,再测试点号匹配换行是否符合预期。这样能更快定位是模式边界还是标志设置导致差异。
指南
按步骤完成操作,并通过示例核对输入与结果。
在模式框直接输入正则表达式本身,例如 (?P<kind>Email|Phone):\s*(.+);这里不需要包上Python代码里的 r'...'。原始字符串前缀是写Python源码时避免反斜杠二次转义的办法。
在待匹配文本框输入或粘贴多行样本,例如两行分别写 Email: a@example.com 和 Phone: 13800138000。
按需要打开标志位,再检查高亮、匹配数量和捕获组。如果需要修改文本,切换到替换模式并填写替换模板。
替换模板按网页替换规则引用捕获组:$1 指第一个捕获组,命名组可用 $<kind>。勾选全部替换时处理每个匹配项;取消后只处理首个替换位置。
可以先用一段短而有代表性的文本验证边界,再把相同模式放进实际Python程序运行。
场景
查看这项工具在不同工作与生活流程中的用法。
把几行包含不同标签的日志贴入文本框,以命名分组标出字段,再检查每行的匹配结果和分组值是否对应。若个别行未命中,可调整模式后立即复看。
在替换模式中测试标题、标记或字段格式的替换效果。先核对匹配数量和示例输出,确认无误后再在实际脚本或编辑器中处理完整数据。
问答
集中解答高频疑问与容易混淆的问题。
不用。模式框接收正则内容,不接收Python字符串字面量。只有在Python源码中写模式字符串时,才通常用原始字符串前缀来减少反斜杠转义。
此处的替换字符串使用网页语法,请用$1引用第一个捕获组;Python脚本中的替换引用写法不能直接照搬到替换框。
保持“全部替换”开启即可预览所有匹配项的替换结果;关闭该选项时只替换第一个匹配位置。建议先检查匹配数和预览文本。
可能是括号或字符类没有闭合,也可能用了当前测试环境不能处理的语法。先缩短模式,逐步加入分组、断言和标志,定位是哪一部分触发错误。
须知
使用前了解适用范围、结果限制与必要提醒。
Python不同版本和其他正则引擎在语法支持、Unicode字符分类、转义及替换行为上可能有差异。本页的ASCII选项只是近似控制;替换模板采用网页的捕获组引用方式。需要保证脚本结果时,应在目标Python版本中复测完整样本。位置数值用于帮助定位文本,不应用作不同引擎之间精确偏移量的证明。尤其是含有表情符号或其他扩展字符时,页面位置与Python按字符串字符计数的结果可能不同。
推荐
查找相关工具、专题与可用的 API 能力。